148
151
154
156
158
160
161
162
162
162
161
160
158
156
154
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
111
112
114
116
119
123
125
128
132
135
139
143
145
149
152
155
157
159
160
161
162
162
162
161
160
157
155
153
150
147
143
140
136
132
129
126
123
120
117
115
113
111
110
109
109
109
110
111
113
115
117
120
123
126
129
133
136
140
144
147
150
153
156
158
160
161
162
162
163
161
161
159
157
154
151
148
145
142
138
135
131
128
125
122
118
116
113
112
111
109
109
108
109
110
111
113
115
118
121
124
127
131
134
138
141
145
148
151
153
156
158
160
161
162
162
161
161
159
158
156
153
150
148
144
141
137
133
130
127
124
120
118
115
113
111
110
109
108
109
109
111
112
114
116
119
122
125
128
131
135
138
143
145
149
152
154
157
158
161
161
162
162
162
161
158
156
157
157
144
144
150
139
133
133
130
127
121
117
118
117
112
110
110
108
109
110
110
110
113
115
117
120
123
126
129
133
135
140
143
147
150
152
154
159
159
161
162
158
162
164
160
157
157
155
152
148
144
143
139
134
131
128
125
122
119
116
113
112
110
109
109
109
110
110
111
113
116
118
121
125
127
131
133
137
140
145
147
151
153
155
157
160
158
167
163
155
164
165
157
151
157
153
146
140
140
140
134
128
126
125
121
118
115
113
111
110
109
109
109
109
111
112
114
116
119
122
126
127
132
136
137
141
146
150
150
154
157
159
161
161
163
163
162
160
159
158
155
154
148
143
144
142
137
133
128
126
123
119
117
115
111
110
111
111
109
108
111
113
111
113
118
121
122
125
130
132
135
139
144
147
149
154
155
157
158
164
163
159
160
161
158
159
160
152
153
150
145
142
140
134
132
129
124
121
119
117
114
111
110
111
109
108
110
111
111
113
115
118
121
124
127
130
133
137
141
144
148
151
154
156
158
159
161
162
162
162
161
160
158
156
154
151
147
144
141
137
134
130
127
124
121
118
115
114
111
111
109
109
108
110
111
112
114
116
119
122
125
128
131
135
139
142
145
149
152
155
157
159
161
162
162
162
162
161
160
157
155
153
150
146
144
139
136
132
129
126
123
120
117
115
113
111
109
109
109
109
110
111
112
114
117
120
123
126
129
132
136
140
143
147
150
153
155
158
159
161
162
163
162
162
160
159
157
154
152
148
146
142
139
134
131
127
125
122
119
116
113
112
110
110
109
109
109
110
111
113
116
118
121
124
127
130
134
137
141
145
148
151
154
157
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
133
130
127
124
121
119
115
113
111
110
109
109
109
110
110
111
114
116
120
122
125
127
131
135
138
143
145
149
152
155
157
159
161
162
162
162
162
161
160
157
156
152
150
147
143
140
135
133
128
126
123
120
117
114
113
111
109
109
109
109
110
111
113
114
117
120
124
127
129
133
136
140
144
147
150
153
155
158
159
161
162
162
162
161
161
158
157
154
152
149
145
142
139
135
131
128
125
123
119
117
113
112
110
109
109
109
109
110
111
113
116
118
121
124
127
130
133
137
140
145
147
151
153
156
157
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
133
130
127
125
122
118
115
113
111
110
109
108
109
110
111
112
114
116
119
122
125
128
131
135
139
142
146
149
152
155
156
158
160
162
162
162
162
160
159
158
156
153
149
146
144
140
136
132
129
126
123
120
117
115
112
111
110
109
109
109
110
111
113
114
117
120
124
126
129
132
136
139
144
146
149
153
155
158
159
161
161
162
162
162
160
158
157
154
153
149
146
142
138
134
131
127
125
122
119
116
114
112
110
110
109
109
108
110
111
113
116
118
121
124
127
130
134
138
140
145
147
151
153
156
158
160
161
162
162
162
161
159
158
156
154
150
148
144
141
137
134
130
127
124
120
118
114
113
111
111
109
109
109
109
111
112
114
116
119
122
125
127
131
135
138
142
146
149
152
154
157
159
160
162
161
162
162
161
159
157
155
152
150
146
143
140
136
132
128
127
123
120
117
114
112
111
109
110
109
109
110
111
112
114
117
120
123
126
129
132
136
140
143
147
149
153
155
158
159
161
161
162
162
162
160
158
157
154
152
148
145
142
139
135
131
128
125
122
119
117
114
112
110
110
109
109
109
109
111
113
116
118
121
124
127
129
134
137
141
144
147
151
154
156
158
160
161
162
162
162
161
159
158
155
154
150
148
144
141
137
133
130
127
124
121
119
115
114
111
110
109
109
109
109
110
111
114
116
119
122
126
127
131
135
139
142
145
149
151
155
156
159
160
161
162
162
162
160
160
157
156
152
150
146
143
139
136
133
128
126
123
120
117
115
112
111
110
109
109
109
110
110
112
115
117
118
127
127
123
134
142
138
141
148
150
154
153
155
161
163
160
162
163
161
161
160
156
154
152
148
146
142
138
135
132
127
125
122
119
116
114
112
110
110
109
108
111
107
112
115
114
117
121
124
127
129
134
138
141
144
147
152
151
154
159
162
161
163
162
162
160
158
158
157
153
149
150
144
140
137
140
130
121
127
126
115
112
116
114
107
105
110
112
110
109
113
115
115
118
124
127
126
129
135
136
142
148
148
151
157
156
158
162
162
161
162
164
155
160
160
155
153
148
149
143
139
137
136
130
125
123
120
116
115
112
111
109
109
110
109
110
111
113
115
117
120
123
126
130
133
136
139
143
146
150
153
155
158
158
161
161
162
162
161
160
159
157
154
152
148
146
142
139
134
132
127
126
122
119
116
114
112
110
110
109
110
109
110
111
113
116
118
121
124
127
130
134
137
140
145
147
151
154
156
158
160
162
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
108
110
111
112
114
117
119
122
125
127
131
135
139
142
145
149
152
154
156
159
160
162
162
162
162
162
159
158
155
152
150
147
144
139
137
132
130
126
123
120
117
115
112
111
110
109
109
109
110
111
112
115
117
120
123
125
129
132
136
140
144
146
150
152
155
157
159
161
161
162
162
162
160
159
157
155
152
148
146
142
139
135
132
127
126
122
120
116
114
112
111
110
109
109
109
110
111
113
115
118
121
124
127
130
134
137
141
144
147
150
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
145
142
137
134
130
127
124
121
118
115
114
111
110
109
109
108
110
111
112
114
116
119
122
125
127
131
135
138
142
146
148
152
154
157
159
161
162
162
162
162
161
159
158
156
153
149
146
144
139
136
132
129
126
123
120
117
115
112
111
109
109
108
109
110
111
113
114
117
120
123
126
129
132
136
139
144
146
150
153
155
158
159
161
161
162
162
162
161
159
157
155
152
148
146
142
139
135
132
127
125
122
119
116
114
112
110
110
109
109
109
110
111
113
115
118
121
124
127
130
134
137
141
144
148
151
153
157
158
160
161
162
162
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
108
110
110
112
114
116
119
122
125
127
131
135
139
141
146
148
152
154
157
159
160
162
162
162
162
161
160
157
155
153
150
146
143
139
137
133
129
126
123
119
117
114
113
111
109
109
108
109
110
111
113
115
117
120
123
126
129
132
136
139
144
146
150
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
142
139
135
132
127
125
122
120
115
114
112
111
109
109
109
109
110
111
114
115
118
120
124
127
130
134
137
141
144
147
150
154
156
158
160
162
162
162
162
161
160
158
157
154
152
147
144
141
138
134
130
127
124
122
118
115
113
111
110
110
109
109
109
111
112
114
116
118
122
125
127
131
135
138
142
145
148
151
154
158
159
160
161
161
162
162
161
159
158
156
153
150
147
144
140
137
133
129
126
123
120
118
114
113
111
110
109
109
109
110
111
113
115
117
120
123
126
128
132
136
140
144
146
150
152
156
157
160
161
161
162
162
161
161
159
157
155
152
149
145
142
139
135
132
127
126
122
120
116
114
112
111
109
109
109
108
110
111
113
115
118
121
124
127
130
134
137
141
144
148
151
154
156
158
160
162
162
162
162
160
161
158
156
153
151
147
145
141
138
134
130
127
124
121
118
115
114
111
110
109
109
108
110
110
112
114
116
119
122
125
128
131
135
139
143
146
148
152
154
157
159
161
161
162
162
162
161
159
158
155
153
150
147
143
140
137
132
129
126
123
120
118
115
113
111
109
109
109
109
110
112
113
115
117
120
123
127
127
129
138
141
144
147
149
152
155
156
159
162
160
161
163
163
160
158
157
156
152
146
145
146
141
128
131
134
124
120
120
118
116
111
108
109
111
110
111
109
109
114
114
118
122
123
127
132
133
136
142
144
147
151
153
155
158
160
162
161
162
163
161
162
155
157
156
150
147
144
142
138
134
130
127
125
121
118
115
114
111
108
111
112
105
106
116
115
108
116
122
123
122
126
133
137
138
140
146
149
152
155
156
157
161
161
162
161
162
161
159
158
155
153
150
147
144
140
136
136
126
127
126
118
118
114
115
110
110
109
110
110
109
111
113
114
117
120
123
126
129
133
136
139
143
146
150
153
155
157
159
160
162
162
162
162
160
160
157
155
152
149
146
142
139
135
132
127
125
122
120
116
115
112
111
110
108
109
108
111
111
113
115
118
121
124
127
130
133
137
141
144
148
151
154
156
158
160
161
162
162
162
161
160
158
156
153
151
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
109
110
110
112
113
116
118
122
125
127
131
135
138
141
145
148
152
154
157
158
161
161
162
162
162
161
159
158
155
153
149
147
144
140
136
132
129
126
123
120
118
114
113
111
110
109
109
109
110
111
111
114
117
120
122
126
128
132
136
139
143
145
150
152
155
157
159
161
162
162
162
161
160
159
157
155
152
149
146
142
139
135
132
128
126
123
119
116
115
112
111
109
109
109
109
110
111
113
115
118
120
124
127
130
133
137
141
144
147
150
153
156
158
160
161
162
162
162
161
161
158
156
154
151
148
144
141
137
134
130
127
124
122
118
115
113
111
110
109
109
109
110
110
112
113
116
119
122
125
127
131
134
138
141
146
148
152
154
157
158
161
162
162
162
161
161
159
158
155
153
149
147
143
140
136
132
129
126
123
120
117
115
112
111
110
109
108
109
110
111
112
114
117
120
123
126
129
132
135
140
144
146
150
152
155
157
159
161
162
162
162
162
160
159
157
155
152
149
146
142
139
134
132
127
125
122
119
116
114
112
110
110
109
109
109
110
111
113
115
118
121
124
127
130
133
137
141
144
148
150
154
156
158
159
161
162
162
162
161
160
158
156
154
151
147
145
141
137
134
130
127
124
121
118
116
114
111
110
109
109
109
109
110
112
114
116
119
122
124
127
131
134
138
142
146
148
152
154
157
158
160
161
162
162
162
161
159
158
155
153
149
147
143
140
136
133
129
126
123
120
118
114
113
111
110
108
109
109
110
111
112
115
116
120
123
126
129
132
136
139
144
146
150
152
155
157
159
161
162
162
162
162
160
159
157
155
152
149
146
142
138
135
131
128
125
122
119
116
114
112
111
109
109
109
109
110
111
113
115
118
121
124
126
130
133
137
141
144
148
150
154
156
158
159
161
162
162
162
161
160
158
156
153
151
148
145
141
137
134
130
127
125
122
118
115
113
112
110
109
109
109
109
110
112
113
116
118
122
125
127
131
134
138
141
145
148
152
154
157
158
160
161
162
162
162
161
159
158
155
153
150
147
144
140
137
132
129
126
123
120
117
114
113
111
110
110
109
109
110
111
112
115
117
120
123
126
129
132
135
139
143
146
150
153
155
157
159
161
162
162
162
162
160
159
157
155
152
149
145
142
139
135
132
127
125
122
120
116
114
112
110
110
109
109
109
110
111
113
115
118
121
124
127
130
133
137
141
144
147
150
153
156
158
161
161
161
162
162
161
160
158
156
154
151
147
144
141
137
134
130
127
124
121
118
116
113
112
110
110
109
109
110
110
109
114
118
119
123
125
127
131
133
137
143
146
147
152
155
157
157
161
163
162
160
162
163
159
156
155
153
149
146
144
140
136
133
130
126
123
121
121
113
110
112
108
108
111
109
109
113
112
114
119
119
123
127
127
131
135
140
144
146
149
153
156
157
159
162
162
161
162
161
160
159
157
154
152
148
146
143
139
135
132
127
126
122
119
116
114
111
110
109
109
109
109
110
111
113
115
118
120
125
125
129
136
141
135
142
155
149
151
156
160
161
160
159
163
165
160
158
159
156
154
152
147
144
141
137
134
131
127
124
122
118
115
113
112
110
110
109
109
110
111
112
115
113
119
125
124
127
131
136
143
139
140
155
155
149
155
162
162
158
159
163
164
161
158
159
156
153
151
147
143
140
137
133
129
127
123
120
117
115
113
111
109
109
108
109
111
108
112
116
116
119
122
127
128
132
135
140
145
145
149
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
142
139
135
132
127
126
122
120
116
114
112
111
110
109
109
109
111
111
113
115
118
121
124
127
130
133
137
141
144
147
150
153
156
158
159
161
162
162
162
161
161
158
157
154
151
148
144
141
137
135
130
127
124
121
118
116
114
111
110
109
109
109
110
110
112
114
117
118
122
125
127
131
134
138
141
145
149
152
154
157
158
160
162
162
162
162
161
159
158
155
153
150
147
143
140
136
133
129
126
123
120
118
115
112
111
110
109
109
109
110
111
112
115
116
119
123
126
129
132
136
140
143
146
149
152
155
157
159
161
161
162
162
161
160
159
157
155
152
149
146
142
139
135
132
128
126
122
120
117
115
112
111
109
109
109
109
111
111
113
115
118
120
124
126
129
133
136
140
144
147
150
153
156
158
159
161
162
162
162
161
160
158
156
153
152
148
145
141
138
134
130
127
124
121
119
115
113
112
110
109
109
109
109
110
112
113
116
118
122
124
127
130
134
138
141
145
148
151
154
157
158
160
161
162
162
162
160
159
158
156
154
150
147
144
140
136
133
129
127
124
120
117
114
113
111
110
109
108
109
109
111
112
115
116
120
123
126
128
132
135
139
143
145
149
152
155
157
159
160
161
162
162
162
160
159
157
156
152
148
145
143
139
136
132
128
126
122
120
116
114
112
111
109
109
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
155
158
160
161
162
162
162
161
161
158
157
154
152
148
144
141
138
134
130
127
124
121
118
115
114
112
111
109
109
109
109
111
112
113
116
118
122
124
127
131
134
138
141
145
148
152
154
157
158
160
161
162
162
162
161
159
158
155
153
150
147
144
140
137
133
130
126
124
120
118
115
113
111
110
110
108
109
109
111
113
115
117
119
123
125
128
132
135
139
143
146
149
152
155
157
158
161
161
162
162
162
161
159
157
155
153
149
146
142
139
135
132
127
126
122
119
116
114
112
110
110
109
109
109
110
111
113
115
118
120
124
126
129
134
137
140
144
147
150
153
156
158
160
161
162
162
162
161
161
158
157
154
151
148
144
141
137
134
130
127
124
121
118
116
113
111
110
109
109
109
110
110
112
114
116
119
122
125
127
131
134
139
141
145
148
151
154
157
159
160
162
162
162
162
161
159
158
156
153
150
147
144
140
137
132
130
127
124
121
118
115
113
111
110
109
109
109
110
111
112
114
117
120
123
126
129
132
136
139
143
146
149
152
155
158
159
161
161
162
162
162
161
159
157
155
152
148
146
143
139
135
132
128
126
122
120
117
113
110
112
111
110
110
108
110
111
112
115
119
119
123
127
131
133
136
141
145
147
149
154
157
157
158
162
162
161
162
162
160
158
157
154
150
148
147
143
135
133
131
126
125
123
116
117
115
110
111
111
107
109
110
109
111
113
116
119
121
124
128
131
134
139
142
144
148
152
154
156
158
161
161
162
163
162
161
160
158
156
153
150
147
144
140
137
133
130
127
123
120
118
115
113
111
110
109
109
109
110
111
112
114
117
119
123
126
129
132
136
139
143
146
149
152
155
158
159
161
161
162
161
162
161
159
157
155
152
149
146
142
140
135
132
128
126
122
120
116
114
112
111
110
108
109
108
111
111
113
115
117
121
123
127
130
134
136
140
144
147
151
154
156
158
160
162
162
161
162
160
166
156
151
159
154
145
143
143
139
135
127
127
127
122
116
117
114
111
111
109
109
110
110
109
112
114
116
118
122
124
127
132
134
139
141
145
147
152
155
156
158
159
162
163
160
166
160
154
164
158
149
150
151
145
138
133
133
133
126
122
121
119
115
113
111
109
109
109
109
109
111
112
115
117
120
123
126
129
132
136
141
142
146
147
153
157
155
158
161
162
162
161
163
162
159
157
155
153
149
146
142
139
135
132
128
126
122
120
116
114
112
111
110
109
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
156
158
160
161
162
162
162
161
161
158
156
154
152
148
145
141
138
134
130
127
125
122
118
116
113
112
110
109
109
109
109
110
112
113
116
119
122
125
127
131
134
138
141
146
148
152
154
157
158
161
162
162
162
161
161
160
158
156
153
150
147
144
141
137
133
130
127
124
121
118
115
113
111
110
110
109
109
110
111
112
114
117
119
123
125
129
132
135
139
143
146
149
153
154
158
159
161
162
162
162
162
161
159
157
155
152
149
146
143
140
135
132
127
126
122
120
117
114
112
110
110
109
109
109
110
111
113
115
117
121
124
127
130
133
137
140
144
147
151
153
156
158
160
161
162
162
162
161
161
159
156
154
151
148
145
142
137
135
131
127
125
121
118
116
114
112
111
109
109
109
109
111
112
114
116
119
121
125
127
131
134
138
141
145
148
151
154
156
158
160
162
162
162
162
161
160
157
156
153
150
146
144
140
137
133
130
126
123
120
118
115
113
111
110
109
108
109
110
111
112
114
117
119
123
126
128
132
135
139
143
146
149
152
155
158
158
161
161
162
162
162
161
159
157
155
153
149
146
142
139
135
132
129
125
123
120
117
114
112
111
110
109
109
109
110
111
113
115
117
120
123
127
129
133
136
140
144
147
151
153
156
157
159
161
162
162
162
162
160
158
156
154
151
148
145
141
137
134
130
127
125
121
119
116
114
111
110
109
109
109
109
110
111
114
115
119
121
125
127
131
134
138
141
145
148
152
154
156
159
160
161
162
162
162
161
159
157
156
153
150
146
144
140
137
133
129
127
123
120
117
115
112
111
109
109
109
108
110
110
112
114
117
119
123
126
128
132
135
139
143
146
149
152
155
158
158
160
161
161
162
162
161
158
157
154
152
149
146
143
139
135
131
128
125
122
119
117
113
112
110
109
109
109
109
110
111
112
115
118
120
124
127
130
133
137
140
144
146
150
153
156
158
159
161
162
162
161
162
160
158
156
154
151
148
145
142
138
134
130
127
125
121
119
116
114
111
110
110
109
109
110
110
111
114
115
119
121
125
127
130
134
138
142
145
149
151
154
156
158
160
162
162
162
163
161
160
158
156
153
150
147
144
141
138
132
127
127
125
121
118
115
112
111
109
109
110
108
109
111
114
114
116
120
124
124
127
133
137
138
141
147
149
152
154
158
159
161
162
162
161
162
163
160
154
154
153
147
147
144
137
137
133
127
126
124
117
118
114
111
110
110
109
109
109
109
112
113
115
118
122
123
127
130
133
136
140
144
146
150
153
156
158
160
161
162
162
162
161
160
159
156
155
151
148
145
141
138
134
130
127
125
121
119
115
114
111
110
109
109
109
109
111
111
114
116
118
121
125
127
131
134
138
142
145
149
152
154
156
158
160
161
162
162
162
161
160
158
156
153
151
146
144
140
137
133
129
127
123
120
118
115
113
111
110
109
109
109
110
110
113
114
117
120
122
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
162
162
161
158
157
154
153
149
146
142
139
135
132
128
126
123
120
117
114
112
111
110
109
109
109
110
111
113
115
117
120
124
126
129
133
137
140
144
147
151
153
156
157
159
161
162
162
162
162
160
158
156
154
151
148
145
141
138
134
131
127
125
120
120
114
112
114
114
103
107
116
108
108
111
115
117
117
118
125
130
129
134
138
142
145
150
151
153
157
158
160
161
162
162
163
160
159
158
156
153
150
148
143
141
137
130
135
127
118
123
122
114
108
114
113
108
105
108
113
112
111
113
118
120
123
126
127
132
136
140
142
146
149
152
155
157
159
161
161
162
163
161
161
161
155
155
154
149
145
142
141
135
132
127
127
124
119
116
114
112
110
109
108
109
110
110
111
112
115
118
121
124
126
130
133
137
140
144
147
150
153
156
157
159
161
161
162
162
162
160
159
156
154
152
148
145
141
138
134
131
127
125
121
118
116
114
112
110
109
108
110
109
111
111
114
116
119
121
124
127
131
134
138
141
145
148
151
154
156
158
160
161
162
161
162
161
160
158
156
153
150
147
144
140
136
134
129
127
123
121
118
115
113
111
110
109
109
109
110
110
113
114
116
119
123
126
128
131
135
139
143
146
149
152
154
157
158
161
162
162
162
161
161
159
157
154
153
149
146
143
139
136
132
129
126
123
119
117
114
112
110
110
109
109
109
110
111
113
115
117
120
123
127
129
133
136
140
144
147
151
153
156
157
159
161
162
163
162
161
160
159
157
154
152
148
145
141
138
134
131
127
125
121
119
115
114
112
110
110
109
109
109
111
111
114
116
118
121
124
127
131
134
138
142
145
148
151
154
157
158
160
161
162
162
162
161
159
158
156
154
150
147
144
140
136
133
130
127
124
120
118
115
113
111
110
109
109
109
110
111
112
114
117
120
123
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
162
162
161
158
157
155
152
149
146
143
139
136
132
129
126
123
120
117
114
112
111
109
110
108
109
110
111
113
115
117
120
123
126
129
133
137
140
144
147
150
153
156
158
159
162
161
163
162
162
160
158
156
154
151
148
145
142
138
134
131
127
125
121
119
115
113
111
110
110
109
109
109
110
111
114
116
119
121
124
127
130
134
137
142
145
148
151
154
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
136
133
129
127
124
121
118
115
113
111
110
109
109
109
110
110
112
114
117
120
123
126
127
132
135
139
142
146
149
152
155
157
159
160
162
162
162
162
161
159
157
155
152
149
146
143
139
136
132
128
126
123
120
117
114
112
111
109
109
108
109
110
111
113
115
118
120
124
126
129
133
137
140
144
147
150
153
155
158
159
161
161
162
162
162
160
159
154
152
154
149
146
142
137
134
130
126
125
121
117
116
115
113
109
109
110
110
108
109
113
114
115
118
123
124
127
131
135
138
141
145
148
150
154
159
157
157
162
161
160
164
162
157
159
156
152
152
146
143
141
136
132
129
127
125
120
116
115
115
111
110
110
109
108
110
111
111
114
117
119
122
126
127
132
135
139
142
146
149
152
155
156
159
161
162
162
162
161
160
159
157
155
152
149
146
142
139
135
132
128
126
122
120
117
114
112
111
109
109
109
109
110
111
113
115
117
120
124
126
129
133
136
140
144
147
150
153
156
158
159
161
162
162
162
161
160
158
157
154
152
148
145
141
138
134
131
127
124
121
118
116
114
111
110
110
108
109
109
110
111
113
116
118
121
124
127
130
134
138
141
145
148
152
154
156
158
160
161
162
162
162
161
159
158
156
153
150
147
144
140
137
133
130
127
124
120
118
114
114
111
110
109
109
108
109
110
112
114
116
120
122
126
128
132
135
139
143
146
149
152
155
157
159
160
162
162
162
162
161
159
157
155
152
149
146
143
139
136
132
128
126
123
120
117
114
112
111
110
110
109
109
110
111
113
115
117
120
123
126
129
133
137
140
144
147
150
153
156
157
159
161
161
162
162
162
160
158
156
154
152
148
145
141
139
135
131
127
125
122
119
116
114
112
110
110
108
109
109
110
111
114
116
118
121
124
127
130
134
139
140
143
151
154
147
156
165
158
158
163
163
163
159
157
159
158
152
150
148
143
141
137
133
128
127
123
121
118
115
113
111
110
109
108
109
108
115
112
108
120
124
120
123
128
135
136
135
141
148
151
150
154
158
160
161
161
160
162
162
161
159
157
155
152
150
146
143
140
136
132
129
125
123
122
114
115
114
110
109
108
111
109
110
111
114
116
117
119
124
127
129
133
137
139
144
147
150
153
156
157
159
161
161
162
162
162
160
159
157
154
152
148
145
142
138
134
131
127
125
121
119
116
114
111
110
110
108
109
110
110
111
114
116
119
121
124
127
130
134
137
142
145
148
151
153
156
158
160
161
162
162
162
161
160
158
156
153
150
147
144
141
137
134
130
127
123
121
118
115
113
111
110
109
110
109
111
110
112
114
116
120
123
125
128
132
135
139
143
146
149
152
154
157
159
160
162
162
162
162
161
159
157
155
153
150
146
143
139
136
132
129
126
122
119
117
115
113
110
109
109
109
109
110
111
112
115
117
121
124
127
129
133
137
140
144
146
150
153
156
158
160
161
162
162
162
161
160
159
156
155
152
149
145
142
138
135
131
127
125
122
119
116
114
112
110
109
109
109
109
110
111
114
115
118
121
125
127
130
134
138
142
145
148
151
154
156
158
159
162
162
162
162
161
160
157
156
153
151
146
144
141
137
133
130
127
124
121
117
115
113
111
109
109
109
109
110
111
112
114
117
119
123
125
128
132
135
139
143
146
148
152
154
158
159
161
162
162
162
161
161
159
157
155
153
149
147
143
139
136
132
129
126
123
120
117
114
112
111
109
109
109
109
110
111
112
115
117
120
123
127
129
133
136
140
144
146
150
153
156
158
159
160
162
162
162
162
160
158
156
154
151
148
145
142
138
135
131
127
125
121
119
115
113
111
110
110
109
109
109
110
111
113
115
118
121
124
127
131
134
138
141
144
148
151
154
156
158
159
161
161
162
162
161
160
158
156
153
151
147
144
140
137
133
130
127
123
121
118
115
113
111
110
109
109
109
110
110
112
114
117
119
123
125
128
132
135
139
143
146
149
152
155
158
159
160
158
163
164
162
161
159
157
155
151
148
148
142
138
136
133
129
124
123
121
117
113
113
112
109
108
109
110
109
111
113
115
117
120
123
125
130
134
137
137
143
147
148
154
157
156
161
162
160
163
163
160
161
158
155
154
150
149
146
141
138
135
131
127
125
122
119
115
114
111
110
109
109
109
109
110
111
114
116
119
121
124
127
130
134
137
141
145
148
150
154
156
158
159
161
162
162
162
161
161
157
156
153
151
147
144
140
136
134
129
127
124
121
118
115
113
111
110
109
109
109
110
111
112
114
117
119
123
125
128
131
135
139
142
146
149
152
154
157
158
161
161
162
162
161
161
159
158
155
153
149
146
143
139
136
132
129
126
123
119
117
114
112
111
110
109
109
109
110
111
113
115
117
120
123
127
130
133
136
140
144
147
150
152
156
158
161
161
161
161
162
162
161
159
156
155
152
149
145
141
138
134
131
127
125
122
119
115
115
111
111
110
109
109
109
111
111
114
116
119
121
125
127
131
134
137
141
145
148
151
154
156
158
159
162
162
162
162
161
160
158
156
153
151
147
144
140
137
133
130
127
124
121
117
115
113
112
110
109
109
109
110
111
112
114
117
119
122
125
128
132
136
139
142
146
149
152
154
157
158
161
161
162
163
162
161
159
157
155
152
149
147
143
140
135
132
129
126
123
120
117
114
113
111
110
109
109
109
110
111
113
115
118
121
123
126
129
133
136
140
144
147
151
153
156
157
160
161
162
162
163
161
161
159
156
154
151
149
145
142
138
135
131
127
125
122
119
115
114
112
111
109
109
109
109
110
112
113
115
118
121
124
127
131
134
137
141
144
148
150
154
156
159
160
161
162
162
162
161
160
158
156
153
151
148
143
140
138
138
125
125
129
122
115
115
114
112
109
106
109
112
109
110
113
114
116
120
122
124
128
132
134
139
141
150
149
146
158
162
156
157
164
165
161
158
161
162
160
150
153
153
146
142
139
136
132
129
125
123
120
117
114
112
111
110
110
109
109
111
111
112
117
113
121
126
126
129
132
138
139
144
146
152
153
155
157
159
160
162
162
161
161
161
159
157
154
151
148
145
142
138
135
131
127
125
122
119
116
114
111
110
110
109
109
110
110
111
113
116
118
121
125
127
130
133
137
141
145
147
151
153
156
158
160
162
161
162
162
162
160
158
156
154
151
147
144
140
137
133
130
127
124
121
118
115
113
111
110
109
108
109
109
111
112
114
116
119
122
125
128
131
135
138
142
146
149
152
154
157
158
161
161
162
162
162
161
159
157
155
153
149
146
143
139
135
132
128
126
122
120
117
114
113
111
109
109
109
109
110
111
112
115
117
120
123
126
129
132
136
140
143
147
150
153
155
157
159
161
162
162
162
161
160
158
156
154
151
148
145
142
138
135
130
127
125
122
119
115
113
111
110
109
109
108
109
110
111
113
115
118
121
124
127
130
134
138
141
145
147
151
154
156
158
160
161
161
162
162
161
159
157
156
153
151
147
144
140
137
133
130
127
124
121
118
114
113
111
110
109
108
109
109
111
112
114
116
119
123
125
127
131
135
138
142
145
149
152
154
157
158
161
161
162
162
161
160
159
158
156
152
149
146
143
140
136
132
128
126
123
120
117
114
112
111
109
109
109
108
110
111
113
115
117
120
123
126
129
133
136
140
144
146
150
153
155
157
159
160
162
162
162
161
160
158
156
154
152
149
145
142
138
135
131
127
125
122
119
116
113
111
111
109
109
108
109
109
111
113
115
118
121
124
127
131
134
137
138
145
150
151
154
156
157
160
161
160
164
162
159
160
159
156
152
150
148
145
139
137
134
130
126
124
121
118
115
114
112
109
109
109
109
108
111
113
113
114
120
122
124
130
131
134
140
142
144
151
151
154
158
158
159
161
162
162
162
159
160
158
155
152
150
146
142
140
135
132
128
126
123
120
117
114
112
111
110
108
109
108
110
111
113
115
117
120
123
127
128
132
135
140
143
147
150
153
155
157
159
161
162
162
162
161
160
158
157
154
152
148
145
142
138
135
131
128
125
121
119
116
113
112
110
110
109
109
109
110
112
113
116
118
122
124
127
130
134
137
141
145
148
151
153
156
158
159
161
162
163
161
161
159
158
156
153
150
147
144
141
138
133
131
127
124
121
118
115
113
111
110
109
108
109
109
111
112
114
116
119
122
125
128
131
135
138
143
145
149
152
154
157
158
161
161
163
162
162
160
159
157
155
153
149
146
143
140
136
133
128
127
123
120
117
114
113
111
110
109
109
109
110
111
113
115
117
120
123
127
129
133
136
140
144
147
150
153
156
157
160
160
162
162
163
161
161
158
157
155
152
149
145
142
138
135
131
128
125
122
119
116
114
112
111
109
109
109
109
110
111
113
115
118
121
124
127
130
134
138
141
145
147
151
154
156
158
160
162
162
162
162
161
160
158
156
154
151
147
144
141
138
133
131
127
124
121
118
115
113
112
110
110
109
109
109
111
112
114
117
119
122
125
128
131
135
138
143
145
149
152
154
157
158
161
161
162
162
162
161
159
157
155
153
149
147
143
140
136
132
128
127
123
120
117
114
113
111
109
109
109
109
110
111
113
115
117
120
123
126
129
134
135
139
143
147
150
153
155
158
160
160
162
161
163
161
160
159
157
155
152
148
145
142
138
135
131
127
125
122
119
116
114
111
110
110
110
109
110
109
112
114
116
118
121
124
127
130
133
138
141
145
147
151
154
156
158
160
162
162
162
162
161
160
158
156
154
151
147
144
140
138
133
130
127
124
121
118
115
113
111
110
109
109
109
109
111
113
113
115
121
127
120
127
138
135
136
142
147
150
151
151
157
162
159
160
163
161
161
160
164
157
149
155
153
145
139
142
139
131
126
126
126
121
115
114
113
111
111
109
110
106
111
114
111
114
117
122
123
126
129
134
137
140
144
146
150
155
153
157
161
161
162
161
164
160
160
158
158
156
151
148
145
142
138
135
131
127
125
122
119
116
114
112
110
110
109
109
110
110
112
113
115
118
121
124
127
131
133
138
141
145
148
151
154
156
158
160
162
162
162
162
161
159
158
156
154
151
148
144
140
137
134
130
127
124
120
118
115
114
111
110
109
109
109
110
111
112
114
116
119
122
125
128
131
135
138
143
145
149
152
154
157
159
161
161
162
162
162
160
159
157
156
152
150
146
144
140
136
133
129
126
122
120
117
115
113
111
110
109
109
109
111
111
113
115
117
120
123
126
129
133
135
140
143
147
150
153
155
158
159
161
162
162
162
161
161
158
157
154
152
148
145
142
138
135
131
127
125
122
118
116
114
112
111
109
109
109
109
110
112
113
115
118
121
124
127
131
134
138
140
145
147
151
154
156
158
160
162
162
162
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
120
119
115
113
111
110
109
109
109
110
111
112
115
116
120
122
125
128
131
135
139
143
145
149
152
154
157
159
160
161
162
162
162
161
159
158
156
152
150
147
144
140
136
133
129
126
123
120
117
114
112
111
110
109
109
109
110
111
113
114
117
120
123
126
129
133
136
140
144
147
149
153
156
155
159
164
162
163
162
160
161
158
156
156
152
147
146
144
139
134
131
129
125
121
119
119
113
111
111
110
109
108
110
110
111
113
116
118
121
125
128
129
132
138
140
144
150
150
153
157
157
160
163
160
162
162
161
159
159
156
155
150
147
145
141
137
134
131
127
123
121
118
115
113
111
110
109
109
109
110
111
112
114
116
120
122
125
128
132
135
138
142
145
148
152
155
157
159
159
162
162
162
162
161
159
157
156
152
149
146
144
140
136
132
129
126
123
120
117
115
112
111
109
109
109
109
110
111
113
115
117
119
123
126
129
132
136
140
144
147
150
153
155
158
159
161
162
162
162
161
161
159
157
154
152
148
145
142
138
135
131
128
125
122
119
117
113
112
110
109
109
109
109
110
111
113
116
118
121
124
127
130
134
137
141
145
148
151
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
108
110
111
112
114
116
119
122
125
127
131
135
138
142
146
149
152
155
157
159
160
162
162
162
162
161
159
157
155
152
150
146
143
140
136
132
128
126
123
120
117
115
112
111
109
109
109
109
110
111
113
115
117
119
124
126
129
133
136
140
143
146
150
153
155
158
159
161
162
162
162
161
161
158
157
154
152
148
146
142
139
135
131
128
125
122
119
117
114
112
110
109
109
109
109
111
111
113
116
118
121
124
127
130
134
137
141
144
147
151
154
157
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
109
110
111
111
114
116
119
122
126
127
131
135
138
142
145
149
152
154
157
159
160
162
162
162
162
161
159
158
155
152
150
147
143
140
136
132
129
127
123
120
117
115
112
111
109
109
109
109
110
111
113
114
117
120
123
126
129
133
136
140
143
147
150
153
155
158
159
161
162
162
161
161
161
158
157
154
152
148
145
142
139
135
131
128
125
122
119
117
113
112
111
109
109
109
109
110
111
113
116
118
121
124
127
130
134
137
140
145
147
151
153
156
158
160
161
162
162
162
161
160
158
156
153
150
148
145
141
138
134
130
127
124
121
119
115
113
111
109
109
109
109
109
111
111
114
116
119
122
126
128
131
135
138
143
145
149
152
154
157
158
161
161
162
161
162
161
165
154
151
158
152
144
142
142
136
133
127
123
129
122
111
115
118
111
105
109
111
110
108
108
115
116
116
120
124
127
129
133
135
139
143
147
150
152
155
159
156
161
164
161
162
161
161
158
158
153
154
146
146
144
135
135
131
130
124
120
119
117
114
111
110
109
109
108
110
109
112
114
116
118
121
124
127
131
133
137
140
145
147
151
153
156
158
159
161
162
162
161
161
160
158
156
154
151
147
144
140
137
133
130
127
124
121
118
115
114
111
110
109
108
109
109
111
112
114
116
119
122
125
127
131
135
138
142
145
149
152
155
157
158
160
161
162
162
162
161
160
157
155
153
150
146
143
140
136
132
128
126
123
120
117
115
113
111
110
109
109
109
110
111
112
114
117
119
123
126
128
132
136
139
143
146
150
153
155
158
159
160
162
162
162
161
161
158
157
154
152
149
145
142
138
135
131
128
125
122
118
117
114
112
111
109
109
109
109
110
111
113
115
118
121
124
127
130
133
137
140
145
147
151
153
156
158
159
161
162
162
162
162
159
158
155
154
150
148
145
141
138
133
130
127
125
121
118
115
114
112
110
109
108
109
109
110
112
114
116
119
122
125
127
131
135
138
142
145
148
152
155
156
156
161
164
162
163
161
160
161
156
155
154
149
145
144
141
136
131
129
127
123
119
118
115
111
110
111
109
108
108
110
111
112
115
117
119
123
127
129
131
134
139
143
147
150
153
155
158
159
161
162
161
162
161
160
158
157
155
152
148
145
142
138
135
131
127
125
122
119
116
114
112
110
110
109
109
110
110
111
113
115
118
121
124
127
130
133
137
140
144
148
150
154
156
158
160
161
162
162
162
161
160
158
156
153
151
148
145
141
138
134
130
127
124
121
118
115
113
112
110
109
109
109
110
111
112
113
116
119
122
125
128
131
135
138
143
145
149
152
154
157
159
161
162
163
162
162
161
159
157
156
153
149
147
143
140
136
133
129
127
123
120
117
115
113
111
110
109
109
109
110
111
113
115
117
120
123
127
129
133
135
139
143
147
149
153
155
157
159
161
162
162
162
162
161
158
157
155
152
149
146
142
139
135
131
128
125
123
119
117
114
112
110
109
109
109
110
110
112
113
115
118
121
124
127
130
133
138
140
145
147
151
153
156
158
160
161
162
162
162
162
160
158
155
154
151
148
145
141
137
134
130
127
125
121
119
115
114
111
110
110
109
109
109
111
112
114
116
119
122
125
128
131
134
138
143
145
149
152
154
157
159
161
162
162
162
162
161
160
157
155
153
150
147
143
140
136
133
129
127
123
120
117
114
113
111
110
109
109
109
110
111
113
115
117
120
123
126
129
133
136
140
143
147
150
152
156
157
159
161
162
162
162
162
161
159
156
155
152
149
146
142
139
135
131
128
126
122
119
116
114
112
111
109
109
109
109
111
111
113
115
118
121
125
127
130
134
137
141
144
148
150
154
156
158
159
161
162
162
162
161
160
158
156
154
151
147
144
141
137
134
131
127
124
121
118
115
113
111
110
110
109
109
109
111
111
114
116
119
122
125
128
131
135
138
143
145
148
152
154
157
158
160
161
162
162
162
161
160
158
155
153
150
147
143
140
136
133
129
127
123
120
117
114
113
111
110
109
109
108
110
111
112
114
117
120
123
126
128
132
135
140
143
146
150
152
155
158
159
161
162
162
162
161
161
158
157
155
151
149
145
142
138
135
131
128
125
122
119
116
113
112
111
110
109
109
109
110
111
113
115
118
121
124
127
130
133
137
140
145
147
150
153
155
158
159
161
162
162
161
161
159
158
156
154
151
148
145
141
137
134
130
127
124
121
118
116
114
111
110
110
109
109
109
111
112
113
116
118
122
125
127
130
135
138
142
145
149
152
154
156
158
161
161
162
162
162
160
160
157
155
153
150
147
143
140
136
133
128
127
123
120
117
114
112
110
115
107
102
113
114
104
115
118
112
121
123
126
127
133
137
140
140
144
153
155
153
156
161
161
162
162
161
161
161
158
157
155
152
149
145
142
138
135
132
128
123
122
121
116
116
107
113
112
107
108
109
113
110
113
115
120
121
124
127
130
133
138
141
144
147
151
154
156
158
159
161
162
162
162
162
160
158
156
154
151
148
145
141
137
134
131
127
125
121
118
115
113
111
110
109
109
109
109
110
111
114
116
119
122
125
128
131
135
137
142
145
148
152
154
157
158
161
161
162
162
162
161
160
158
156
153
150
147
144
140
136
133
129
127
123
120
118
115
113
111
110
109
109
109
110
110
112
115
117
120
123
126
129
132
135
139
143
147
150
152
155
157
159
161
162
162
162
161
161
159
156
154
152
150
146
142
138
135
132
128
125
122
119
117
114
112
111
109
110
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
154
156
156
160
164
162
163
162
161
160
158
155
155
151
146
145
142
138
133
131
128
124
119
118
117
112
111
111
110
108
109
110
111
111
114
117
118
122
126
127
130
134
138
142
146
148
152
154
157
159
161
161
161
162
162
160
159
158
156
153
149
147
144
140
137
133
129
126
123
120
117
114
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
132
135
139
143
146
149
152
155
157
160
161
162
162
162
161
160
159
157
155
152
149
145
143
138
135
132
128
126
122
119
116
114
112
111
109
109
109
109
110
111
113
115
118
121
124
127
130
133
137
141
144
148
150
153
156
158
159
161
162
162
161
161
160
158
157
153
151
147
144
140
137
134
130
127
124
121
118
115
113
111
110
110
109
109
109
110
112
113
116
118
122
124
128
131
135
138
142
145
148
152
154
157
158
161
162
162
162
162
161
159
158
156
153
149
147
143
140
136
133
129
126
123
120
118
114
113
111
110
109
109
109
110
111
113
114
117
119
123
126
129
132
135
140
143
146
149
152
155
157
159
161
162
162
162
161
161
159
157
155
152
149
145
143
139
135
131
128
125
122
119
116
114
112
111
109
109
108
109
110
111
113
115
118
120
124
127
130
133
137
140
145
147
151
153
156
158
159
161
161
163
162
162
160
158
156
154
151
147
145
141
137
133
131
127
124
121
118
116
113
111
110
110
109
109
109
111
112
114
116
119
122
124
127
131
135
138
142
145
149
151
154
157
159
160
161
162
162
162
161
160
158
155
153
149
147
143
140
136
133
129
127
123
120
118
114
113
111
110
109
109
109
110
111
112
115
117
120
123
126
128
133
136
139
143
146
149
153
155
158
159
161
162
162
162
161
161
158
157
155
152
149
145
142
139
135
132
128
125
123
119
117
114
112
111
109
109
109
109
110
111
113
116
118
120
123
127
130
134
137
140
144
147
150
153
156
158
160
161
162
162
162
161
159
158
156
154
151
148
144
141
138
134
131
127
125
121
118
115
114
111
110
110
110
109
109
110
111
114
116
119
121
125
127
131
135
138
141
145
149
151
154
156
159
160
162
162
162
162
161
160
158
156
153
150
146
144
140
137
133
129
127
123
120
117
115
113
111
109
109
108
109
110
110
112
114
117
120
123
126
128
132
135
139
143
146
149
153
155
158
159
161
162
162
162
161
161
158
158
155
152
148
146
142
139
135
131
128
125
122
119
117
114
112
110
109
109
109
109
110
112
113
115
118
121
124
127
130
133
137
140
144
147
150
153
156
158
159
161
161
162
161
161
159
158
156
154
151
148
144
141
138
134
131
127
125
121
118
116
114
112
110
109
108
109
109
111
112
114
116
118
122
125
127
130
135
138
142
145
148
152
154
157
158
160
161
162
162
162
161
160
157
156
153
150
146
144
140
136
133
129
127
123
120
117
115
113
111
110
109
109
108
110
111
112
115
117
119
123
126
128
132
134
140
142
145
153
156
148
157
166
158
159
162
165
162
157
157
163
155
145
153
149
138
137
139
132
125
122
123
122
116
112
112
112
109
109
109
109
110
112
113
115
118
121
124
127
127
134
140
138
143
148
150
154
157
154
161
164
161
161
161
163
159
159
155
155
152
147
145
141
138
133
131
127
125
122
119
115
113
112
110
109
109
109
109
111
111
114
116
119
122
125
127
131
135
138
142
145
148
151
154
157
159
160
161
162
162
162
160
160
158
156
153
150
147
144
140
136
133
129
127
123
120
117
115
113
111
110
109
109
109
110
111
113
114
117
120
123
126
128
132
135
140
143
146
149
153
155
156
158
163
161
162
163
160
162
158
156
156
152
147
146
144
139
134
131
130
125
121
119
118
113
111
111
110
108
108
110
111
111
113
116
117
120
125
127
129
133
136
140
144
147
152
153
156
158
160
162
161
162
162
162
160
158
156
155
151
147
145
142
138
134
130
127
124
121
119
115
114
112
110
110
109
109
109
111
112
114
116
118
122
125
127
131
134
137
142
145
149
151
155
157
159
160
161
162
162
162
160
159
158
156
154
150
147
143
140
137
133
129
127
123
121
118
115
113
111
110
109
109
108
110
110
112
115
117
120
123
126
129
133
135
140
143
146
149
153
155
158
159
160
161
162
162
162
161
159
157
155
152
149
145
142
139
135
131
128
125
122
119
117
114
112
111
109
109
109
109
111
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
156
158
159
161
162
162
162
161
160
158
156
154
151
148
145
141
137
134
130
127
125
122
118
116
113
112
110
110
109
109
109
110
112
113
116
118
122
125
128
131
134
138
142
145
148
152
154
157
158
161
161
162
162
162
161
159
157
156
153
150
147
143
140
136
133
130
126
123
120
118
114
113
111
110
109
109
109
110
111
112
115
116
120
122
126
129
132
135
139
143
146
150
153
156
157
159
160
162
162
162
161
161
158
157
155
152
149
145
142
139
135
132
128
126
122
120
117
114
112
111
110
109
109
109
110
111
114
115
118
120
124
127
130
133
137
140
144
147
150
154
156
158
159
161
162
162
162
161
160
158
157
153
152
148
145
141
138
134
130
127
125
122
118
116
113
112
110
110
109
109
109
110
112
113
117
118
122
124
127
131
135
138
142
145
148
152
154
157
158
160
161
162
162
162
161
160
158
155
153
150
147
144
140
136
132
129
127
124
120
118
115
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
132
136
139
144
146
150
152
156
157
159
160
162
162
162
162
161
159
157
155
152
149
146
143
139
135
132
128
126
122
120
117
114
111
111
109
109
109
109
111
111
113
115
118
120
124
127
130
133
137
141
144
147
150
153
156
158
160
161
162
162
162
161
161
158
156
154
152
148
145
141
138
134
131
127
124
122
118
116
113
111
110
109
109
109
110
110
112
113
116
118
122
125
127
131
135
138
141
145
148
152
154
157
158
160
161
162
162
162
161
159
158
155
153
150
147
144
140
137
133
130
126
123
120
118
114
113
111
110
109
109
109
110
111
112
114
116
120
123
126
128
132
135
139
143
146
149
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
145
142
139
135
132
128
125
122
120
116
114
112
111
109
109
109
109
111
111
112
115
118
121
124
127
130
133
136
140
144
147
150
154
156
158
159
161
161
162
162
161
160
158
156
154
151
148
145
141
137
134
131
128
124
121
118
116
113
112
111
109
109
109
110
111
112
113
116
118
122
125
127
131
134
138
141
145
148
151
154
157
158
159
161
162
163
162
161
159
158
155
153
150
147
144
140
137
133
130
127
123
120
118
115
112
111
110
109
108
109
110
111
112
114
117
119
123
126
129
132
136
139
143
145
149
152
154
157
159
161
161
162
162
162
161
159
157
154
152
149
146
140
144
137
126
129
131
120
116
118
115
114
108
106
111
116
106
105
117
116
112
116
123
125
125
127
134
140
140
141
148
151
153
156
158
158
161
162
162
162
162
159
160
153
154
154
147
144
141
139
133
129
129
122
123
121
114
114
110
113
109
108
108
111
111
111
113
116
119
122
125
127
131
135
138
141
145
148
152
155
154
158
163
162
162
163
160
161
159
156
157
153
149
147
145
141
135
132
131
127
122
120
119
114
111
111
110
109
108
110
110
110
112
115
117
119
124
126
128
131
135
139
143
146
150
152
155
158
159
161
161
162
162
162
161
159
157
155
152
149
146
143
139
135
132
127
126
123
119
116
114
112
110
110
109
110
109
110
111
113
115
118
121
124
127
129
133
136
140
144
147
151
153
156
158
159
161
162
162
162
162
160
158
157
154
152
148
145
142
138
134
131
127
125
121
119
116
113
112
111
110
109
109
109
111
111
114
116
119
121
125
127
131
134
138
142
145
149
151
154
156
159
160
162
162
162
162
161
160
158
156
153
151
147
144
140
136
133
130
127
123
120
117
115
113
111
109
109
109
109
110
111
113
114
117
120
123
126
128
132
136
139
143
146
149
153
155
157
158
161
162
162
162
161
161
159
157
155
153
149
146
142
139
135
132
128
125
123
119
117
114
112
111
110
109
108
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
156
158
160
161
162
163
162
161
160
159
156
154
152
148
145
141
138
134
131
127
125
121
118
116
113
111
110
110
108
109
109
110
111
114
116
119
122
125
127
131
135
138
142
145
148
151
154
157
159
160
161
161
162
163
161
159
158
155
154
150
148
144
140
136
133
129
127
123
120
118
114
113
111
110
109
109
108
110
111
112
114
116
119
123
126
129
131
135
139
143
146
149
152
154
157
159
161
162
162
162
161
161
159
157
155
152
149
146
142
139
135
131
128
125
123
119
117
114
112
111
110
110
109
109
110
111
113
115
117
120
124
126
129
133
137
140
145
147
150
153
155
158
159
161
162
162
162
162
160
159
156
154
151
148
145
141
138
134
131
127
125
121
118
116
113
112
110
110
108
109
109
110
111
114
116
119
121
125
127
130
134
137
141
145
148
151
154
156
158
160
161
162
162
162
161
160
158
156
153
150
147
144
140
136
133
129
127
123
120
118
114
113
111
110
109
109
109
110
111
112
114
117
120
123
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
162
162
161
159
157
155
152
149
146
143
139
135
132
128
126
122
120
117
114
112
111
109
109
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
155
157
159
162
162
162
162
161
159
158
157
154
151
148
145
141
138
134
131
127
125
122
118
116
113
112
110
110
109
109
109
110
111
114
116
118
122
125
127
130
134
137
141
145
148
151
154
157
158
160
162
162
162
162
161
160
158
156
154
150
147
143
140
137
133
129
127
124
120
118
114
113
111
110
109
109
109
110
111
112
114
116
120
123
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
163
161
161
159
157
155
152
149
146
142
139
135
132
128
126
122
120
117
114
112
111
109
109
109
109
110
111
113
115
118
120
124
127
129
133
137
140
144
147
150
153
155
158
159
161
162
163
162
162
161
158
157
154
151
148
145
142
138
134
130
127
125
121
118
116
113
112
110
110
109
109
109
110
112
114
116
119
122
124
128
131
134
138
142
145
148
152
154
157
158
160
161
162
162
162
161
159
158
156
154
150
147
144
140
137
133
129
127
124
120
118
115
113
111
110
109
109
109
109
111
112
115
117
120
123
126
128
133
136
139
143
146
150
151
155
157
160
161
161
162
162
162
161
159
156
155
152
149
146
143
139
135
132
128
126
122
120
117
114
112
111
110
109
109
109
110
111
113
115
123
116
119
132
131
130
135
143
144
148
146
151
159
161
158
158
166
166
158
159
163
158
154
151
152
150
145
140
138
134
131
128
123
120
119
117
112
111
111
109
106
108
111
111
111
113
116
118
123
124
128
128
135
139
139
145
148
152
154
155
159
163
161
161
161
162
160
159
158
155
153
150
148
144
140
136
133
130
126
123
120
118
115
113
111
110
109
109
108
110
111
112
114
116
119
122
126
128
131
135
139
143
146
149
152
155
157
159
161
162
162
162
161
160
159
157
155
152
149
145
143
139
135
132
128
126
122
120
117
114
112
111
109
110
108
109
110
111
113
115
117
120
124
127
130
133
136
139
144
147
150
153
156
158
159
161
162
162
161
161
159
158
156
154
151
148
145
141
138
134
131
127
124
121
119
116
114
112
110
110
108
109
109
110
112
114
116
118
121
124
127
131
134
138
141
145
148
152
153
157
158
160
161
162
162
162
161
160
157
155
153
150
147
144
141
136
133
130
127
123
120
117
115
113
111
110
108
109
108
110
111
112
115
116
120
123
126
128
132
135
139
143
146
149
152
155
157
159
160
161
162
162
162
161
159
157
155
152
149
146
143
139
136
132
128
126
123
119
117
114
112
111
110
109
108
109
110
112
113
115
117
120
123
126
130
133
137
140
144
147
150
153
155
158
159
161
161
162
161
161
160
158
156
154
152
148
145
141
138
134
131
127
125
122
119
116
113
112
110
110
109
109
109
110
111
113
116
118
121
124
127
130
134
138
141
145
148
151
153
157
158
160
161
162
162
162
161
160
158
156
154
150
147
144
141
136
133
129
127
124
120
118
115
113
111
110
109
109
108
110
110
112
114
116
119
122
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
162
162
161
159
157
155
152
150
146
143
139
136
132
129
126
123
120
117
114
112
111
109
109
108
109
110
111
113
115
118
120
124
126
130
133
136
140
144
147
150
153
156
158
159
162
162
162
162
162
161
159
157
154
151
148
145
142
138
134
130
128
125
122
118
116
113
112
111
109
109
109
109
110
112
113
116
118
122
124
127
130
134
138
141
146
148
152
154
156
158
160
161
162
162
162
161
160
159
156
153
150
147
144
141
137
133
130
127
124
120
118
115
114
111
110
109
109
109
109
111
112
115
116
120
123
126
129
132
135
139
143
146
149
152
155
157
159
161
162
162
162
162
160
159
157
155
152
149
146
143
139
135
132
128
126
122
120
117
115
113
111
109
109
109
109
110
111
113
115
118
120
124
126
130
133
137
141
144
147
150
153
156
158
159
161
162
162
162
161
161
158
156
154
152
148
145
142
139
134
130
127
125
122
119
116
113
112
110
110
109
109
110
111
112
114
116
118
122
124
127
131
134
138
141
145
148
152
153
156
158
160
161
162
162
162
161
159
158
155
154
150
147
144
140
137
133
130
126
124
121
118
115
113
111
110
109
109
109
110
111
112
115
117
119
122
126
129
132
136
139
143
145
149
152
155
157
158
160
162
162
162
162
160
159
157
155
152
149
146
143
139
135
132
128
126
122
120
117
114
112
111
110
109
109
109
110
111
113
115
118
120
123
126
130
133
136
140
144
147
150
153
156
158
159
161
162
162
162
162
161
158
156
154
152
148
145
142
138
134
131
128
125
122
118
116
113
112
110
110
109
109
109
110
112
113
116
118
122
124
127
131
134
138
141
145
148
151
154
157
159
159
162
161
162
162
162
160
158
156
154
150
147
144
140
137
133
130
127
124
120
117
115
113
111
109
109
109
109
109
111
112
115
116
119
123
125
129
131
136
138
143
146
150
152
154
155
160
162
161
163
162
161
161
158
157
157
151
148
147
144
139
135
133
129
125
121
121
118
113
111
111
110
108
109
110
110
111
113
115
117
120
125
126
129
133
136
140
144
148
150
153
156
158
159
160
162
161
168
160
153
163
161
151
149
151
146
142
134
135
131
132
124
116
121
120
114
108
111
112
109
105
109
113
112
112
116
119
121
125
127
130
133
138
141
145
149
151
153
155
159
162
161
161
162
163
161
157
161
153
155
152
145
144
139
140
132
129
127
125
121
117
115
113
112
110
109
108
109
110
111
112
114
117
119
123
126
129
132
135
138
142
145
149
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
143
140
135
132
128
126
122
120
117
114
112
110
110
109
110
108
110
111
113
115
117
120
123
127
129
133
136
140
144
147
150
153
156
157
159
161
162
162
162
161
160
158
157
154
152
149
145
142
138
135
131
128
125
121
119
116
114
112
111
110
109
108
110
110
111
114
116
118
121
125
127
131
134
138
141
144
147
151
154
156
158
159
161
162
162
162
161
160
158
156
153
151
147
144
140
137
133
130
127
124
121
118
115
113
111
109
109
109
109
110
111
113
114
117
119
123
125
128
132
135
139
143
146
149
152
155
157
159
161
161
162
162
162
161
159
157
155
153
149
146
143
140
135
132
129
126
123
120
117
114
113
111
110
109
108
109
110
111
113
115
117
121
123
127
129
133
136
140
144
146
151
153
156
157
159
161
162
162
162
162
161
159
157
154
151
148
145
142
138
135
131
127
125
121
119
116
114
111
111
109
109
109
109
110
111
114
115
119
121
125
127
131
134
137
141
145
148
150
154
156
159
160
161
162
162
162
161
160
158
156
153
151
147
144
140
137
133
129
127
123
121
118
115
113
111
110
109
109
109
110
111
112
114
117
119
122
125
128
132
136
139
143
146
149
152
155
157
159
161
161
162
162
161
161
158
157
155
152
149
146
143
139
136
132
128
125
123
120
117
114
112
111
109
109
109
109
110
111
112
115
117
120
124
126
130
133
136
140
144
146
150
153
156
158
159
161
162
162
161
162
160
158
156
155
152
148
145
141
139
134
131
127
125
122
118
115
113
112
110
110
108
109
109
111
111
113
116
118
121
125
127
130
134
137
141
145
148
151
153
156
158
160
161
162
162
163
161
160
157
156
153
151
147
144
140
136
134
130
127
124
121
118
115
114
111
110
109
109
108
110
110
112
114
117
119
122
126
128
132
135
139
143
146
149
152
155
157
159
160
162
162
162
162
160
159
157
155
152
150
146
143
139
136
132
128
126
123
120
117
115
112
111
110
109
109
109
110
111
113
114
118
120
124
127
130
133
137
140
144
146
150
153
155
158
159
161
162
163
162
162
160
158
157
155
152
148
145
141
139
134
131
127
124
122
118
116
114
112
111
110
109
109
109
110
112
113
116
118
121
124
127
131
134
138
141
145
147
151
154
157
158
160
161
162
162
162
161
160
158
155
153
151
148
144
141
136
133
130
127
124
120
118
115
113
111
110
109
109
109
110
111
112
114
116
119
122
126
128
132
136
139
143
146
149
152
155
157
159
161
161
162
162
162
160
160
157
155
152
150
146
143
140
135
132
128
126
123
120
117
114
112
111
110
109
109
108
110
111
113
115
117
120
124
127
129
133
137
140
144
147
150
153
156
158
160
161
162
162
162
161
161
158
156
154
151
148
145
142
137
135
131
127
125
122
119
116
114
111
111
109
109
109
109
110
111
113
116
119
121
125
127
131
134
137
141
145
148
151
152
156
162
159
162
162
162
162
161
159
159
156
152
151
148
145
140
137
135
130
126
124
122
118
114
113
112
109
109
109
110
109
111
112
114
116
120
123
125
128
131
135
138
143
146
149
152
154
157
159
161
161
162
162
162
161
160
158
155
153
149
146
143
139
136
132
128
126
123
120
117
114
113
111
110
109
109
109
110
111
113
115
117
120
123
127
129
133
136
140
144
147
150
152
156
157
159
161
162
162
162
161
161
158
156
154
151
148
145
142
138
134
131
127
125
121
119
115
120
109
105
115
111
105
108
113
112
115
111
118
125
122
129
135
130
135
148
146
142
151
158
157
155
157
163
165
161
160
162
161
157
157
153
150
147
144
142
136
132
130
127
124
120
117
116
113
112
109
109
113
105
110
112
111
113
116
121
121
125
127
133
136
138
142
146
149
152
155
157
158
161
162
162
163
162
161
159
157
155
152
150
146
143
139
136
132
129
126
123
119
117
114
112
111
109
109
109
109
110
111
113
115
117
120
123
126
130
133
137
140
144
146
150
153
156
158
159
161
161
163
162
162
160
159
157
154
152
149
146
141
138
134
131
127
126
122
119
116
114
112
111
110
109
109
109
110
111
114
115
118
121
125
127
130
134
137
141
145
148
151
154
156
158
160
161
162
162
162
161
160
157
156
153
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
110
109
110
110
111
114
117
120
122
125
127
132
135
139
142
146
148
152
155
157
159
161
162
162
162
162
161
159
158
155
152
149
146
143
139
135
133
129
127
123
119
117
115
112
111
110
109
109
109
110
111
113
115
118
120
123
126
129
133
136
140
144
147
149
153
156
158
159
161
162
162
162
161
160
158
157
154
152
148
145
142
138
135
131
127
125
122
118
116
114
112
110
110
109
109
109
110
112
113
116
118
122
124
127
130
134
138
141
145
148
151
153
156
158
160
161
162
162
163
161
160
158
156
154
150
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
109
109
111
111
114
116
119
122
126
128
132
135
138
143
146
149
152
155
157
159
161
162
162
162
162
160
159
157
156
153
150
146
144
139
136
132
129
126
123
120
116
115
112
111
110
109
109
109
110
111
113
114
117
120
124
126
129
133
136
140
144
147
150
153
155
158
159
161
161
163
162
161
160
158
157
154
152
148
145
141
138
135
131
127
125
122
118
116
113
112
111
110
109
109
109
110
111
113
115
118
121
125
127
131
134
138
141
145
147
151
154
156
158
160
161
162
162
162
161
159
158
156
154
151
147
144
140
137
133
130
127
124
121
118
115
113
111
110
109
108
109
109
111
112
114
116
119
123
125
128
131
135
139
143
145
149
152
154
157
158
161
161
162
162
162
161
159
157
155
153
149
146
143
139
135
132
128
126
123
120
117
114
112
111
110
109
109
108
110
110
113
115
117
120
123
127
129
132
136
140
143
147
150
153
155
157
159
160
162
162
162
161
160
159
157
155
151
149
145
142
138
135
131
127
125
122
119
116
114
111
110
109
109
109
110
110
111
113
116
119
121
124
127
130
134
137
141
144
148
151
154
156
158
160
161
162
162
162
161
160
158
156
153
151
147
144
141
137
133
130
127
124
121
118
115
113
111
110
109
109
109
110
111
112
114
117
120
122
126
127
132
135
139
142
146
148
152
155
157
159
160
162
162
162
162
161
159
157
155
153
149
146
143
139
136
132
128
126
123
120
117
115
112
111
109
109
109
110
110
111
112
115
118
120
123
126
129
132
136
140
144
146
150
153
155
158
159
162
162
162
162
161
160
158
155
153
154
148
145
142
137
135
132
127
126
122
117
116
115
113
109
109
109
110
108
110
113
113
115
119
122
123
127
130
135
137
141
145
147
150
154
157
158
160
161
162
162
162
161
160
158
156
154
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
108
110
110
112
114
116
119
122
125
128
131
135
139
142
146
149
152
154
157
159
160
162
162
163
162
161
159
157
156
153
150
147
143
139
136
132
129
126
123
119
117
114
113
111
109
109
108
109
110
111
113
114
117
120
123
126
129
133
136
140
144
146
150
153
156
158
159
161
161
162
162
162
160
159
157
154
152
148
146
142
139
135
131
127
125
122
119
116
114
112
110
110
108
109
109
110
111
113
115
118
121
123
127
129
132
141
144
138
148
158
151
153
159
162
162
160
160
163
164
159
155
161
156
145
149
148
141
133
135
133
127
121
118
121
117
112
111
111
109
110
109
108
111
112
114
118
116
122
127
127
131
135
140
142
144
148
153
155
158
155
161
164
160
162
161
162
159
157
156
154
150
146
143
140
135
133
128
126
122
121
118
114
113
111
110
109
109
109
110
111
113
115
118
120
123
126
128
133
136
141
143
147
150
153
155
158
159
160
162
162
162
161
161
159
157
155
152
149
145
142
138
135
131
128
125
122
119
117
114
112
111
109
109
109
109
111
111
113
115
118
121
124
127
130
133
137
140
145
148
151
153
156
158
160
162
162
162
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
109
111
112
114
116
119
122
125
128
131
135
139
143
145
149
152
154
157
158
161
162
163
162
161
161
159
158
155
153
149
146
143
140
136
132
129
126
123
120
118
114
112
111
110
109
109
109
110
111
112
115
117
120
123
126
129
133
136
140
144
146
150
152
155
158
159
161
162
163
162
162
160
159
157
155
152
148
145
141
139
135
131
127
125
121
119
115
114
111
110
109
109
109
109
110
111
114
115
118
121
124
127
130
134
137
141
144
148
150
153
156
159
161
161
162
161
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
121
117
115
114
112
110
109
108
109
110
110
112
113
116
118
122
125
128
132
134
138
143
146
148
152
154
157
159
161
161
162
162
162
161
159
158
155
152
149
146
143
140
136
132
129
126
123
120
117
114
112
111
110
109
108
109
110
111
113
115
117
120
123
126
129
132
136
140
144
146
150
152
155
157
159
161
162
162
162
162
160
159
157
154
152
148
145
142
139
134
131
127
125
122
119
116
114
112
111
110
109
109
109
110
111
114
116
118
121
124
127
130
134
137
140
144
147
151
153
156
158
160
161
162
162
162
161
159
158
156
154
150
148
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
111
111
114
116
119
122
126
127
131
135
139
143
146
149
152
155
157
159
161
161
162
162
162
161
160
157
156
153
150
146
144
140
136
133
128
126
123
120
117
115
112
111
109
109
109
109
111
111
113
115
117
120
123
126
129
133
136
140
143
146
150
153
155
158
159
161
162
162
162
161
161
159
157
154
152
148
145
143
138
135
131
127
125
122
119
116
114
112
110
109
109
109
109
110
112
113
116
118
121
124
127
130
134
137
141
145
147
150
153
156
158
160
161
162
163
162
161
160
158
156
154
151
147
144
141
138
133
130
127
124
121
118
115
113
111
110
109
109
109
109
111
112
114
116
119
123
125
128
131
135
139
143
145
149
152
154
157
158
161
161
162
162
162
160
159
157
155
153
149
147
143
140
134
133
131
126
123
120
116
116
112
111
111
108
108
110
111
111
111
115
118
119
122
127
130
132
135
140
144
146
150
153
156
157
159
161
162
162
163
162
160
158
156
155
151
149
145
142
139
135
131
128
124
122
119
116
114
112
111
110
109
109
109
111
111
114
115
118
121
124
127
130
134
137
141
144
148
150
154
156
158
159
162
162
162
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
110
112
114
116
119
122
125
128
132
134
138
142
145
148
152
154
156
159
160
161
162
162
162
161
159
158
155
153
149
146
143
140
136
132
129
127
124
120
117
114
113
111
109
109
108
109
110
111
112
115
118
120
123
126
129
133
136
140
143
146
150
153
155
158
159
161
162
163
161
161
160
159
158
154
152
147
145
142
139
135
131
127
125
122
119
116
114
112
110
110
109
109
109
110
111
113
115
118
121
124
127
130
134
137
141
144
147
151
153
156
158
159
161
161
162
162
162
161
157
155
154
156
144
140
147
139
131
129
129
125
121
115
115
115
111
109
108
111
112
108
107
115
117
112
117
125
127
125
128
136
141
142
144
148
152
155
157
159
159
162
163
159
161
163
159
156
155
152
150
147
142
141
137
132
131
122
124
122
115
115
111
113
109
109
108
111
111
110
113
115
117
120
123
125
129
132
136
140
143
147
150
153
155
158
159
161
162
162
162
161
160
158
157
154
152
148
145
142
139
135
131
127
124
122
119
117
114
112
110
110
109
108
109
110
111
113
115
118
121
124
127
130
133
137
140
145
147
151
154
156
158
160
161
162
162
162
161
160
158
156
153
151
147
144
141
137
134
131
127
124
121
118
115
114
111
110
109
109
109
110
111
112
114
116
119
122
125
127
131
135
138
142
145
148
152
154
157
159
161
161
162
162
162
160
159
158
155
153
149
147
143
140
135
133
129
127
123
120
117
114
113
111
110
109
109
109
110
111
113
115
117
120
123
126
129
133
135
140
143
146
150
153
155
157
159
160
162
162
162
161
160
159
157
154
152
149
145
142
138
135
131
128
125
122
119
116
114
112
111
109
109
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
151
154
156
158
159
161
161
162
162
161
160
158
156
154
151
147
145
141
137
134
130
127
124
121
118
115
113
111
110
110
108
109
109
111
112
114
116
119
122
125
127
131
135
138
142
145
148
152
154
157
158
160
161
162
162
162
161
159
157
155
153
149
147
143
140
136
132
129
126
123
120
117
114
113
111
110
109
109
109
110
111
113
115
117
120
123
126
128
132
136
140
144
147
150
152
155
157
159
161
162
161
162
161
161
158
156
154
152
149
145
143
138
135
131
128
126
122
119
117
114
112
111
109
109
109
109
110
111
113
115
118
120
124
127
131
133
136
140
144
148
151
154
155
158
159
161
162
162
161
161
160
158
156
154
151
147
145
141
137
134
130
127
124
122
118
116
113
111
110
110
110
109
109
110
112
114
116
118
122
125
127
131
135
138
142
146
148
152
154
156
158
160
162
162
162
162
161
159
158
155
153
150
146
143
140
136
132
129
126
123
120
117
115
113
111
109
109
109
109
110
111
112
115
117
120
123
126
129
132
136
139
144
146
150
152
155
158
159
161
161
162
161
162
160
159
157
154
152
148
146
142
139
135
132
127
125
122
119
116
114
112
110
110
108
109
109
111
111
113
115
118
121
125
127
130
133
137
141
144
148
151
153
156
158
160
161
162
162
163
161
160
158
156
153
151
148
144
141
137
134
130
127
124
121
118
114
115
113
110
110
109
108
110
109
112
115
116
118
123
126
128
131
135
140
141
144
150
153
154
156
159
161
161
162
163
162
161
160
157
155
153
151
146
143
139
136
133
129
127
123
120
117
114
112
111
109
109
109
109
110
111
112
115
117
119
124
126
129
132
136
139
143
146
149
153
155
158
158
161
161
163
162
161
160
158
157
154
152
148
145
142
138
135
131
127
125
122
119
116
113
112
110
110
109
109
109
111
111
113
115
118
121
124
127
130
134
137
141
144
147
151
153
157
158
160
161
162
162
162
161
160
158
156
154
150
148
144
141
137
134
130
127
125
121
118
115
114
111
110
109
109
108
110
110
112
114
116
119
122
125
127
131
135
138
142
145
149
152
155
156
159
160
161
162
162
162
160
160
157
156
153
150
147
143
140
136
132
129
127
124
121
117
114
112
111
109
109
109
109
110
111
113
114
117
120
123
126
129
132
136
140
143
146
150
153
155
158
159
161
162
162
162
162
161
158
157
155
152
149
146
142
139
135
131
128
125
122
119
117
113
112
110
110
109
109
110
110
111
113
115
118
121
124
127
130
133
137
140
145
147
150
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
124
121
119
115
113
111
110
110
108
108
111
115
106
111
123
119
119
125
129
131
134
135
143
148
147
150
153
161
160
156
162
166
161
157
162
163
157
152
152
152
147
142
140
137
133
129
127
123
119
118
117
110
111
112
108
108
108
111
111
112
114
117
122
123
126
127
134
137
138
142
147
150
153
155
158
160
159
162
162
163
161
161
158
156
155
153
149
145
142
139
135
131
128
125
122
119
116
114
112
111
109
109
109
109
111
111
113
115
118
121
124
127
130
134
137
141
145
148
151
154
156
158
159
161
162
163
162
161
160
158
157
154
151
148
144
141
137
134
130
127
124
121
118
116
113
111
110
109
109
109
110
110
112
114
116
119
123
125
128
131
135
138
142
145
149
152
154
157
159
161
162
162
162
162
161
158
157
155
153
150
147
143
140
136
132
129
126
123
120
117
115
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
133
136
139
144
147
150
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
142
138
134
131
127
126
122
119
116
114
112
110
110
109
109
109
110
111
114
115
118
121
125
127
130
134
137
141
144
147
151
153
156
158
160
161
162
162
162
161
160
158
156
153
151
147
145
141
137
133
130
127
124
121
118
115
113
111
110
110
109
109
109
110
112
114
116
118
122
124
127
130
134
138
142
145
148
152
154
157
158
160
161
162
162
162
161
160
158
156
153
150
147
144
140
136
133
130
127
124
121
118
114
113
111
110
108
109
109
110
110
112
115
117
120
123
126
128
132
135
139
143
146
150
152
155
157
159
160
162
162
162
162
160
159
157
154
152
149
146
143
139
135
132
128
126
122
119
116
114
112
111
109
109
109
109
110
111
113
115
118
120
124
127
130
133
137
140
145
147
150
153
155
158
159
161
162
163
162
162
160
158
156
154
151
147
145
141
138
134
130
127
124
121
118
116
114
111
110
109
109
109
110
111
112
113
116
118
122
125
127
130
134
138
141
146
148
152
153
156
158
160
161
162
162
162
161
159
158
155
153
150
147
144
140
136
133
130
126
124
120
118
115
113
111
110
109
109
109
110
111
112
115
116
120
122
125
129
132
136
139
144
146
150
152
155
157
159
161
162
162
162
161
160
159
157
155
152
149
146
142
139
135
132
127
126
122
119
116
115
112
110
109
109
110
108
110
113
112
116
118
120
125
126
129
134
137
139
145
148
151
152
156
159
159
160
162
163
161
161
160
159
156
154
152
148
144
141
137
134
131
129
125
120
117
115
113
111
110
109
109
109
110
111
112
114
116
119
122
125
127
131
135
138
142
145
149
152
154
157
159
160
162
162
162
162
161
159
157
156
152
150
147
144
140
136
133
129
127
124
120
117
115
113
111
110
109
109
109
110
111
113
114
117
119
123
126
129
132
136
140
144
147
150
153
155
158
159
161
162
162
162
162
161
158
157
155
152
149
146
143
139
135
131
128
125
123
119
117
113
112
110
110
109
109
109
110
111
113
116
118
121
123
127
129
133
137
141
144
147
151
153
157
158
160
161
162
162
162
161
160
159
156
154
151
148
145
141
137
134
130
127
125
121
118
115
114
111
110
109
109
109
110
111
112
114
116
119
122
125
127
131
135
138
142
146
148
152
154
157
158
160
161
162
162
162
161
159
158
155
153
150
147
144
136
136
133
129
126
123
120
117
115
113
111
110
109
109
108
110
111
113
115
117
120
123
126
129
133
135
140
143
146
150
152
155
157
159
161
162
162
162
162
161
159
157
154
152
149
145
143
138
135
131
128
125
122
119
117
114
113
111
109
109
109
110
110
111
113
116
118
121
124
127
130
133
137
140
145
147
150
153
156
158
159
161
162
162
161
161
159
158
156
154
151
147
144
141
138
134
131
127
125
121
118
116
113
112
110
110
109
110
109
111
112
114
116
119
122
125
128
130
135
138
142
145
148
151
153
157
157
166
161
155
166
167
157
157
160
156
154
146
145
146
140
135
134
127
129
127
116
116
120
113
106
111
112
108
106
108
113
114
114
115
121
123
126
129
131
136
140
141
145
151
153
154
157
160
161
162
161
162
162
162
158
158
152
153
151
144
142
138
136
131
127
126
123
119
115
114
112
110
109
109
108
109
111
112
113
115
118
121
124
127
130
133
137
141
144
147
150
153
156
158
159
161
162
162
162
161
160
158
156
154
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
108
110
110
112
114
116
118
122
125
127
131
134
138
142
146
148
151
154
157
160
161
161
161
162
162
161
159
157
155
153
150
147
144
140
136
132
130
126
124
120
118
115
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
132
135
139
143
146
149
152
155
157
159
161
162
162
161
162
161
159
157
155
152
149
146
142
139
135
132
127
126
122
120
116
114
112
111
110
109
109
109
111
111
113
115
118
120
124
127
129
133
136
141
144
147
150
153
156
158
159
161
162
162
162
161
161
158
157
153
151
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
109
110
110
112
114
116
119
122
125
127
131
134
138
141
145
148
151
154
156
159
160
162
162
162
162
161
160
158
156
153
150
147
144
140
137
132
129
127
124
121
117
115
112
111
109
109
109
109
110
111
112
114
117
119
123
126
129
132
136
139
143
146
149
152
155
157
158
161
162
162
162
162
161
159
158
155
152
148
146
142
139
136
132
128
125
122
119
117
114
113
111
109
109
109
109
110
111
113
116
118
121
124
127
130
133
137
140
144
147
151
153
156
158
160
161
162
162
162
161
160
159
156
154
151
148
145
141
138
134
131
127
125
121
118
116
114
112
111
110
109
109
109
111
111
114
116
118
122
125
127
131
135
138
142
145
148
152
154
156
158
161
161
162
162
162
161
160
157
156
153
150
147
144
140
136
133
129
127
123
120
117
114
113
111
110
109
109
109
110
111
113
115
116
118
124
127
128
132
135
139
144
145
149
153
155
157
160
161
161
161
163
162
159
158
158
155
151
149
146
143
138
135
132
128
125
123
120
116
114
113
111
109
109
109
109
110
111
113
115
118
120
124
127
130
134
137
140
144
147
150
154
155
158
159
161
161
162
162
161
160
158
157
154
151
148
145
141
138
134
130
127
124
121
118
116
113
111
110
109
109
109
110
111
112
114
116
119
122
125
127
131
134
138
142
145
148
152
154
157
159
160
161
162
162
162
161
159
158
155
153
150
147
143
140
136
132
129
127
123
120
118
115
113
111
110
109
109
109
110
111
112
114
117
120
122
126
128
133
136
139
143
146
150
152
155
157
159
161
162
162
162
162
161
159
157
155
152
149
146
143
139
135
131
128
126
123
120
116
114
112
111
109
109
109
109
110
111
113
115
118
120
124
126
130
133
137
141
144
147
150
153
156
158
159
161
162
162
162
161
161
159
157
154
151
147
145
142
138
134
130
127
124
121
118
116
113
111
110
109
109
109
110
110
111
114
116
118
122
125
127
131
134
138
141
145
148
152
154
157
158
160
162
161
162
161
161
159
158
155
153
150
147
144
140
137
133
130
126
123
120
118
115
113
111
109
109
108
109
110
111
113
114
117
120
123
126
129
132
136
139
143
146
150
152
155
157
158
161
161
162
162
162
161
159
157
155
152
148
146
142
139
135
132
128
125
122
119
117
114
113
110
109
109
109
109
110
111
113
115
117
120
124
127
129
134
137
141
144
147
150
153
156
158
160
161
162
162
162
161
160
159
156
154
151
148
144
141
137
134
130
127
124
121
118
115
114
112
110
109
109
109
110
110
111
114
116
118
121
125
127
131
135
138
142
145
148
151
154
156
159
160
162
162
162
163
160
159
159
160
148
147
154
144
137
136
134
130
126
120
121
120
114
111
112
110
109
109
109
108
111
113
114
118
118
122
125
133
130
131
144
146
143
146
155
158
155
156
162
161
163
163
161
161
158
158
155
151
148
148
143
139
135
131
128
125
123
119
117
114
113
110
110
111
106
110
112
111
112
114
120
120
123
126
131
134
136
140
144
147
150
153
156
157
159
162
162
162
162
162
160
159
156
154
151
148
145
141
138
134
131
127
125
121
119
116
114
111
110
109
109
109
109
111
111
114
116
119
121
125
127
130
135
137
142
145
148
151
154
156
159
160
161
162
162
162
161
160
157
156
153
150
147
144
141
137
133
129
127
124
120
117
115
113
111
110
109
109
109
110
110
112
114
117
120
123
126
128
132
135
140
143
146
149
152
154
157
159
161
162
162
162
161
161
159
157
155
152
149
146
142
139
135
132
128
125
122
120
117
114
113
111
109
109
108
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
156
158
160
161
162
162
162
161
160
159
156
154
151
148
145
141
138
134
130
127
125
121
118
116
114
111
110
110
109
109
110
111
112
113
116
118
122
125
127
130
134
138
141
145
148
152
154
157
158
160
161
162
162
162
161
159
158
156
154
150
148
144
140
137
133
130
127
124
120
118
114
113
111
110
109
108
109
110
111
112
115
116
119
123
126
129
132
135
139
143
146
149
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
142
139
135
132
128
126
122
120
116
114
113
111
110
109
109
109
110
111
113
115
118
121
123
127
130
134
137
140
144
147
150
153
156
157
159
160
162
162
162
161
160
158
157
154
151
148
145
142
137
134
130
127
125
121
118
115
114
111
111
109
109
108
109
110
112
114
115
119
121
125
127
131
134
137
141
147
148
152
155
155
159
159
160
163
163
161
162
160
158
155
153
152
147
143
140
138
132
129
127
124
120
117
115
113
111
109
110
108
108
110
112
112
114
117
119
123
126
129
132
136
139
143
146
149
152
154
158
158
161
161
163
162
162
161
159
157
155
152
149
146
143
139
135
132
128
126
122
119
116
114
112
110
110
109
109
109
110
111
113
115
118
121
124
127
129
133
137
140
144
147
150
153
156
157
159
161
162
162
162
161
160
158
157
154
151
148
145
142
137
134
130
127
125
122
119
116
114
111
111
109
109
109
109
110
111
114
116
118
121
125
127
131
134
138
141
145
148
151
154
156
159
159
162
162
162
161
161
160
157
156
153
151
146
144
140
136
133
130
127
123
121
118
115
112
111
109
109
109
109
110
111
112
114
117
119
123
126
128
132
135
139
143
146
149
153
154
157
158
160
161
162
162
161
161
159
157
154
152
149
146
142
139
135
132
128
125
123
119
117
114
112
110
109
109
109
109
110
111
112
115
117
121
123
127
129
133
137
140
144
147
150
153
155
157
160
161
162
162
162
161
160
158
156
154
151
148
145
141
137
134
131
127
125
121
119
115
114
111
110
109
109
108
109
111
111
114
116
119
121
125
128
131
134
137
142
145
149
151
154
156
158
160
161
162
162
162
160
160
158
155
153
150
147
144
140
137
133
130
127
123
121
117
115
113
111
110
109
109
109
110
111
112
114
117
119
123
126
128
132
135
140
143
146
149
153
155
157
158
161
162
162
162
161
161
158
157
155
152
149
146
142
139
135
132
129
125
123
120
117
114
112
111
109
109
108
109
110
111
113
115
118
121
124
127
130
133
137
140
144
146
150
153
156
158
159
161
162
162
162
162
160
158
156
154
152
148
145
141
138
134
131
127
125
121
118
115
113
112
110
110
109
109
109
111
111
114
116
118
122
125
127
131
134
138
142
145
148
151
154
157
158
160
161
162
162
162
161
160
158
155
153
150
147
144
140
136
133
129
127
124
119
123
115
106
114
115
106
108
110
111
112
110
112
119
121
121
126
129
132
136
140
142
146
150
152
155
157
158
161
162
161
162
161
160
159
155
159
154
144
150
146
138
130
134
134
123
119
119
120
116
110
111
112
110
108
109
109
110
114
116
117
120
124
127
129
133
137
140
145
147
150
154
156
158
158
162
163
160
161
162
161
158
155
155
153
148
144
141
139
134
131
127
124
122
119
116
113
112
111
111
109
109
108
110
112
114
116
118
122
124
127
130
135
138
141
145
148
152
154
156
158
160
161
163
162
162
161
159
158
155
153
149
147
144
141
137
134
129
126
124
121
118
115
113
111
110
109
109
109
109
111
112
114
116
120
123
126
129
132
135
139
144
146
149
152
155
157
159
161
161
163
162
162
160
159
157
155
152
149
146
143
139
135
132
128
125
122
120
117
114
112
111
109
109
109
109
110
111
113
114
118
121
124
127
129
133
136
140
144
147
150
153
155
158
160
161
162
162
162
161
160
158
156
154
152
148
144
141
138
134
130
127
125
122
118
115
113
111
110
109
109
108
110
110
112
114
116
118
122
124
127
131
134
138
141
145
148
151
154
156
158
159
162
162
163
161
161
159
157
156
153
150
147
144
140
137
132
130
127
124
120
118
115
113
111
110
109
109
109
110
111
113
114
117
119
123
126
128
132
135
139
143
146
149
152
155
158
158
161
161
162
162
162
161
159
157
155
153
149
146
142
139
135
132
128
126
123
120
117
114
113
111
110
109
109
109
110
111
113
115
118
120
124
127
129
133
136
140
144
147
150
153
156
156
159
163
162
163
162
161
161
158
156
155
152
147
146
142
139
133
130
128
125
120
119
116
113
111
111
110
109
108
109
110
111
114
116
119
120
125
127
130
134
137
141
145
148
151
154
156
158
160
162
162
162
162
161
159
158
156
153
150
147
144
140
137
133
130
127
123
120
118
115
113
111
109
109
109
109
109
111
112
114
117
119
123
125
127
131
135
139
143
146
149
153
154
157
159
161
162
162
162
162
161
159
157
154
152
149
146
142
139
136
132
129
125
123
119
117
114
112
111
109
109
109
109
110
111
112
115
117
121
124
127
129
133
137
140
144
146
150
153
156
158
159
161
162
162
162
161
160
158
156
154
151
148
145
142
138
134
131
127
125
121
119
116
114
111
110
109
109
109
109
110
111
114
115
119
121
125
127
130
134
137
141
145
148
151
154
156
158
161
162
162
162
162
161
160
158
156
153
150
147
144
140
136
133
130
127
123
120
118
114
113
111
110
109
109
109
110
111
112
114
116
120
123
126
128
132
135
140
143
146
149
152
155
157
159
160
162
162
162
162
161
159
157
156
152
149
146
143
139
136
132
128
126
122
120
117
115
112
111
109
109
109
109
110
111
113
114
118
120
124
126
130
133
137
140
144
147
150
153
156
158
159
161
162
162
162
162
160
158
157
154
152
148
144
141
138
135
131
127
124
121
118
116
114
111
110
109
109
109
109
110
112
113
116
118
122
125
127
131
134
138
141
145
148
151
154
157
159
160
161
161
162
162
161
159
158
155
154
150
148
144
140
137
133
130
127
124
120
118
115
113
111
110
109
109
108
109
111
112
115
116
120
123
126
128
131
135
139
144
146
149
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
143
140
135
132
128
126
122
120
117
114
112
111
110
109
109
108
110
111
113
115
118
120
123
126
129
134
136
141
144
147
150
152
156
157
160
161
162
162
162
161
161
158
156
154
151
148
145
142
138
135
131
127
125
121
119
115
114
111
111
109
109
108
110
110
111
114
115
118
121
125
127
131
134
138
141
145
148
151
154
156
159
160
161
162
162
162
161
160
158
156
153
151
147
144
140
137
133
130
127
123
121
118
115
113
111
110
109
109
109
110
111
113
113
116
121
127
120
127
139
134
137
142
148
150
151
151
158
162
160
161
162
162
161
162
159
156
155
153
148
147
142
139
136
132
129
126
123
119
117
114
113
111
109
109
107
112
109
109
114
118
116
117
126
128
128
130
137
143
145
145
150
154
156
157
159
161
162
162
162
161
159
159
157
155
151
148
144
141
138
134
132
127
126
119
118
119
111
111
111
110
108
108
110
112
112
113
115
120
121
125
127
130
134
138
142
144
147
151
154
156
158
160
161
162
162
162
161
160
158
156
154
150
147
144
140
137
134
130
127
123
121
118
115
113
111
110
109
109
109
110
110
113
115
117
119
122
126
127
132
135
139
142
146
149
152
155
157
159
161
162
162
162
162
161
159
157
155
152
150
146
143
139
136
132
129
126
122
119
116
115
113
111
110
109
108
109
110
111
113
115
118
120
123
126
130
133
136
140
144
147
150
153
156
158
159
161
162
162
162
161
160
159
157
154
152
148
145
142
138
135
130
127
124
122
119
116
114
112
111
110
109
109
110
110
112
114
116
118
121
124
127
131
134
138
141
145
148
151
154
156
158
159
162
162
162
162
161
159
158
156
153
150
147
144
140
137
133
130
127
124
121
118
115
114
111
110
109
109
110
109
111
112
114
117
119
122
125
129
132
136
139
143
146
149
152
155
157
159
161
161
162
162
161
159
161
158
155
152
149
146
143
139
135
132
127
126
124
121
116
114
113
111
109
108
110
109
109
111
113
115
117
121
124
127
129
133
137
140
144
147
150
152
156
158
160
161
162
162
162
161
160
159
157
154
151
148
145
142
138
135
131
127
125
122
118
115
114
112
110
109
109
109
109
111
111
114
115
119
121
125
127
130
134
137
142
145
148
151
154
156
159
160
161
162
162
162
161
161
159
156
153
150
147
144
140
136
133
129
127
123
121
118
115
113
111
110
109
109
109
110
110
112
114
117
119
122
125
128
132
135
139
142
146
149
152
155
157
159
161
162
161
162
162
161
159
158
155
152
149
146
143
139
136
132
129
125
123
120
117
114
112
111
109
109
109
109
110
111
112
115
117
120
124
126
129
132
136
140
144
147
150
153
156
158
159
161
162
162
162
162
160
158
157
154
152
148
145
141
139
135
131
127
125
121
118
116
114
113
110
109
109
109
109
110
112
113
116
118
122
124
127
130
134
138
141
145
148
151
154
156
158
160
162
162
162
162
161
159
158
156
153
150
147
144
140
137
133
130
127
124
121
117
115
113
111
110
109
108
109
110
111
113
114
117
119
123
126
129
132
135
139
143
146
149
152
154
157
159
161
161
162
162
161
161
159
157
155
153
149
146
143
140
135
132
129
126
123
120
117
114
112
111
109
109
108
109
110
111
113
115
117
120
123
127
130
133
136
140
144
147
150
153
156
158
159
161
162
162
162
162
160
159
156
155
152
148
145
142
138
134
131
127
125
121
119
116
114
111
110
110
109
109
109
110
111
114
115
119
121
125
127
131
134
138
141
144
148
151
155
156
158
159
161
162
162
162
161
160
158
156
153
151
147
144
141
137
133
130
127
123
121
117
115
113
111
110
109
109
108
110
111
112
114
117
119
123
126
128
132
135
139
143
146
149
152
155
158
159
160
161
162
162
162
161
159
157
155
152
149
147
144
140
136
132
129
126
123
120
117
114
112
111
109
110
108
109
110
111
113
115
117
120
124
126
130
133
137
140
144
147
150
153
155
157
159
161
162
162
162
162
161
158
157
154
152
148
146
142
139
135
131
127
125
122
119
116
114
112
110
110
109
109
109
111
111
113
116
118
121
124
128
131
134
137
141
144
148
152
153
157
158
161
161
162
162
162
161
159
158
156
154
150
148
144
141
137
134
130
127
123
121
119
115
114
110
110
109
110
109
109
110
112
114
116
120
122
126
128
132
135
139
143
145
150
151
153
162
160
153
164
168
159
159
163
161
158
153
150
152
148
141
139
137
132
129
127
121
119
117
115
113
111
109
109
109
109
110
111
112
114
117
120
123
126
130
134
135
139
144
150
148
151
157
159
157
165
164
157
164
165
159
154
159
157
151
145
144
145
140
133
131
128
125
122
119
116
113
112
111
109
109
109
109
111
112
114
115
118
121
124
129
130
135
136
139
149
146
150
156
156
159
158
162
163
162
161
160
161
158
156
153
150
147
145
141
137
133
130
127
124
121
118
116
113
111
110
109
109
109
110
111
112
114
117
119
122
125
128
132
135
138
142
146
148
153
155
157
158
160
161
162
162
162
161
159
157
155
152
149
146
143
139
135
132
129
126
123
120
117
114
112
111
109
109
109
109
110
111
112
115
117
120
123
126
129
133
136
140
144
146
150
153
156
158
159
160
161
162
162
162
160
158
156
154
152
148
145
141
138
134
131
127
125
122
119
116
114
112
110
109
109
109
109
111
111
113
115
118
121
124
127
130
134
137
141
144
148
151
154
156
158
160
161
162
161
162
161
160
157
156
153
151
147
143
142
138
132
130
127
123
121
117
115
113
111
109
110
109
108
109
111
113
114
115
120
123
125
127
132
135
138
142
146
149
152
155
157
159
160
162
162
162
161
160
159
157
155
152
149
146
143
139
136
132
127
126
122
120
117
115
112
110
109
109
109
109
110
111
113
114
118
120
124
127
129
133
136
140
144
147
150
153
155
157
159
160
161
162
162
161
160
158
157
154
151
148
145
142
138
135
131
128
125
122
119
117
113
111
110
109
109
109
110
111
111
113
115
118
121
125
127
130
134
137
141
145
147
151
154
156
158
160
161
162
162
162
161
160
158
156
153
150
147
144
140
137
133
130
127
124
121
118
115
114
111
110
109
109
109
110
111
112
114
116
119
123
125
129
131
135
138
142
146
149
152
154
157
158
161
161
162
162
162
161
159
158
156
153
149
146
143
140
136
132
129
126
123
120
117
115
113
111
110
109
109
109
110
111
113
115
117
120
123
127
129
133
136
140
144
146
150
153
156
158
159
160
161
163
162
162
160
159
156
154
151
148
145
142
138
135
131
127
125
121
119
115
113
112
110
110
109
109
109
111
111
113
115
119
121
124
127
130
134
137
141
144
148
151
154
156
158
159
161
162
162
162
161
160
157
156
153
150
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
111
112
114
116
119
122
125
128
131
135
139
142
146
148
152
154
157
159
161
162
161
162
162
161
159
157
155
152
150
147
143
139
136
132
128
126
123
120
117
114
112
111
109
109
109
109
110
111
112
115
118
120
124
126
130
133
136
140
144
147
150
153
155
158
159
161
162
162
162
161
160
158
157
154
152
148
146
142
139
134
131
127
125
122
119
116
113
112
110
110
109
109
109
110
112
113
115
118
122
124
127
130
134
138
141
145
148
151
154
156
158
160
161
162
162
162
161
160
158
156
154
150
147
144
141
137
133
130
127
124
121
118
115
113
111
109
110
109
109
110
111
111
114
116
119
122
125
128
131
135
138
143
145
149
152
154
157
158
161
161
162
162
162
160
159
157
155
153
149
147
143
139
136
132
129
126
123
120
117
114
113
111
110
108
109
109
110
111
112
115
117
120
124
127
129
133
136
139
144
147
151
152
156
157
159
161
162
162
162
162
161
159
156
154
151
148
145
142
138
135
131
127
125
122
119
116
114
112
111
110
109
109
109
111
111
114
115
118
121
125
127
130
134
136
141
145
148
151
154
156
158
159
161
162
162
162
161
160
157
156
153
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
110
112
114
116
119
122
125
128
131
135
139
142
145
149
152
154
157
158
161
162
162
163
162
161
158
157
154
151
153
150
137
138
144
130
127
127
125
121
115
112
114
113
108
108
110
109
110
113
112
114
118
120
123
126
129
132
136
139
144
147
150
152
156
157
158
161
163
162
162
160
158
164
155
151
155
150
145
141
139
135
132
127
122
127
120
109
116
116
109
105
111
112
109
107
110
116
117
116
121
125
127
131
134
136
140
145
148
151
154
156
158
160
161
162
162
162
160
160
159
154
156
148
145
150
139
134
135
132
127
123
122
120
116
112
109
112
109
109
109
109
110
113
115
115
120
122
126
128
132
135
138
143
145
148
152
154
157
159
160
161
162
162
162
161
160
157
155
152
150
146
143
140
136
133
129
126
123
120
117
114
111
111
109
110
109
109
109
110
113
114
117
120
123
126
129
133
136
140
144
147
150
153
155
157
159
161
162
162
162
161
161
158
157
154
152
148
145
142
138
135
131
128
123
123
120
116
114
111
110
110
108
109
110
110
111
113
116
118
122
125
127
129
133
138
141
144
147
151
153
156
158
160
161
162
162
162
161
160
159
156
152
150
147
144
141
137
133
130
127
124
121
118
115
114
111
110
109
109
109
110
110
112
114
116
119
123
125
128
131
135
138
143
146
149
152
154
157
158
161
162
162
162
162
161
159
158
155
153
149
147
143
140
136
132
128
126
123
120
117
114
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
133
136
140
144
147
151
153
155
157
159
161
162
163
162
162
160
158
156
155
152
149
145
142
139
134
131
127
125
122
119
116
114
112
110
110
109
109
109
111
111
114
116
118
121
125
127
130
134
137
141
144
148
151
154
156
158
160
161
162
163
162
161
159
158
156
154
151
148
144
141
136
134
130
127
124
121
118
115
113
111
110
110
109
109
110
110
112
114
116
119
122
125
128
131
134
139
142
145
149
152
155
157
159
160
162
162
162
161
161
159
158
155
153
150
147
144
139
136
132
130
126
123
120
116
114
112
111
109
109
109
109
110
111
113
115
117
120
124
126
129
133
137
140
144
146
150
153
155
157
159
161
162
162
162
162
160
159
157
154
152
148
146
142
138
134
131
127
125
122
119
116
113
112
111
111
109
110
109
110
111
113
116
118
121
124
127
130
134
137
141
145
148
151
154
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
124
121
119
115
114
111
110
110
109
109
110
110
111
114
116
119
122
125
127
131
135
139
142
146
149
151
154
157
160
161
161
162
162
162
160
159
156
155
153
150
147
143
140
136
133
128
127
123
120
117
114
112
111
110
109
109
109
110
111
112
114
118
120
124
127
129
132
135
140
144
147
149
152
155
157
160
161
162
162
162
161
161
158
156
154
152
148
145
142
138
135
131
128
125
122
119
117
114
112
111
109
110
109
109
110
111
113
116
118
121
124
127
130
133
137
140
145
148
151
153
155
158
160
162
162
162
161
161
159
158
156
154
151
147
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
110
112
114
117
119
123
125
128
131
135
139
142
145
148
152
154
157
158
161
162
162
162
162
160
159
158
156
153
150
147
143
139
136
132
129
126
123
120
117
114
112
111
109
109
109
109
110
111
112
115
117
120
123
126
129
133
136
140
144
147
150
152
155
157
159
161
162
162
162
161
160
159
156
155
152
149
145
142
138
134
132
128
126
122
119
116
114
112
111
110
109
109
109
111
111
113
115
118
121
124
127
130
134
137
141
144
147
151
154
156
158
160
161
162
162
162
161
160
158
156
153
151
148
145
141
137
134
130
127
124
121
117
115
113
111
110
109
109
108
109
110
112
114
116
119
122
125
128
131
135
138
142
145
148
152
154
157
159
160
162
162
163
162
161
159
158
155
153
150
146
144
139
136
132
129
126
122
120
117
113
116
114
103
110
115
106
107
112
114
116
116
118
125
127
127
132
137
139
144
148
148
152
156
157
159
161
161
162
162
161
160
159
157
154
152
148
145
142
140
135
130
127
124
127
117
113
118
112
110
109
108
111
110
108
112
113
115
119
121
123
127
127
139
139
135
146
153
150
148
158
161
159
158
161
165
163
160
159
159
156
154
151
147
144
141
138
133
130
127
124
121
119
115
114
111
110
109
110
108
111
109
109
121
114
115
125
126
129
129
136
140
144
145
147
153
154
156
159
160
162
163
162
161
160
160
158
156
153
149
147
143
140
136
133
129
127
123
120
117
115
113
111
110
108
110
110
110
112
112
114
118
119
124
127
128
132
137
140
143
146
150
154
155
157
160
161
162
161
162
161
160
159
157
155
152
149
145
142
138
135
131
128
126
122
118
116
114
112
111
110
109
109
110
111
111
113
115
118
121
125
127
130
134
138
141
145
148
151
154
156
159
159
161
162
162
162
161
160
158
157
153
151
147
144
141
137
134
131
127
124
121
118
115
113
112
110
109
109
109
110
110
112
114
116
119
122
126
128
131
134
139
142
146
149
152
154
157
159
160
162
162
162
162
161
159
158
156
153
149
146
143
139
136
132
129
126
123
119
116
114
113
111
110
109
108
109
109
111
113
115
118
120
123
125
129
132
136
140
144
146
150
153
155
158
159
161
161
162
162
162
160
159
157
155
152
148
146
142
139
135
131
128
125
122
119
117
113
112
111
110
109
109
109
110
111
113
116
118
121
124
127
130
134
137
141
144
147
151
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
108
110
110
112
114
117
120
122
125
127
132
135
139
142
146
148
151
154
157
159
160
161
162
162
162
160
160
157
156
153
150
146
144
139
136
132
129
126
124
120
117
115
112
111
109
109
109
109
110
111
113
114
117
119
123
126
129
132
136
140
144
146
148
152
155
158
159
162
161
162
162
161
160
159
157
154
152
148
145
142
139
135
131
128
125
122
119
116
113
112
111
109
109
109
109
110
111
112
115
118
121
124
127
130
133
138
140
145
147
151
153
156
158
159
162
162
162
161
161
160
159
156
153
151
147
144
140
137
134
130
127
124
121
118
115
113
111
110
109
109
109
109
110
112
114
116
119
122
125
128
131
135
139
143
146
148
152
154
157
158
161
161
162
162
162
161
158
158
155
153
149
146
142
140
136
133
129
126
123
119
117
114
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
133
136
140
144
146
150
152
156
157
159
161
162
162
162
161
160
158
157
154
152
148
145
142
138
135
132
128
125
121
119
116
114
112
111
109
109
109
108
110
111
113
116
118
120
124
127
130
134
137
141
144
148
150
154
156
158
159
161
162
162
162
161
160
157
156
153
151
147
144
141
137
133
130
127
125
121
117
115
113
112
110
109
108
108
109
111
113
114
116
118
122
124
127
131
135
139
142
146
148
152
154
157
159
160
162
162
162
161
161
159
158
155
152
149
147
144
140
136
132
129
126
124
120
117
115
113
111
109
109
109
109
110
111
113
115
117
120
123
126
129
133
136
140
144
145
150
152
156
157
159
161
161
162
162
162
160
159
157
155
152
148
145
142
138
135
131
128
126
122
120
117
114
112
110
110
109
109
109
110
111
114
115
118
120
124
127
130
134
137
142
144
147
150
153
156
158
160
161
161
162
162
161
160
158
157
153
151
147
145
141
137
134
131
127
124
121
118
116
113
111
110
110
109
109
110
110
112
114
116
119
122
125
127
131
135
138
142
145
148
152
154
157
159
161
161
162
161
161
161
160
158
155
153
150
147
144
140
137
133
130
126
123
120
117
115
113
111
110
109
109
109
109
111
112
115
116
119
125
129
124
130
143
138
140
147
151
154
154
154
160
164
160
162
163
161
160
161
156
154
152
148
145
142
139
135
132
128
125
122
119
116
114
113
110
110
110
108
110
109
108
119
115
112
125
125
126
130
132
139
143
143
146
152
153
156
158
159
160
163
162
162
162
159
159
156
152
153
152
140
139
143
136
126
128
127
121
115
114
116
114
109
108
109
109
109
111
111
111
117
120
121
125
127
131
135
137
142
146
148
151
155
156
159
161
160
163
159
166
160
154
164
155
151
150
147
146
140
135
132
130
126
122
122
117
114
114
111
110
109
109
109
111
111
113
115
117
119
122
126
128
132
135
139
143
147
149
152
155
158
159
161
162
162
162
162
160
159
157
155
152
149
145
142
139
135
132
127
125
122
119
116
114
112
111
109
109
109
109
110
111
114
115
118
120
124
127
131
134
137
140
144
147
150
154
156
158
159
161
162
162
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
121
118
116
113
111
110
110
109
109
109
110
112
113
116
118
122
125
127
131
135
139
142
145
148
151
154
157
159
160
161
161
162
162
161
159
158
155
152
149
146
144
140
136
132
130
126
124
119
116
114
113
111
110
109
109
109
110
111
112
114
117
120
123
126
129
132
136
140
143
146
149
152
155
158
159
161
161
162
161
162
161
160
158
154
150
148
145
142
139
135
131
127
125
122
119
117
114
112
110
110
109
109
109
110
111
113
115
118
121
124
127
130
134
137
141
144
147
151
153
156
158
160
161
162
162
162
161
160
159
156
154
150
147
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
108
110
110
112
114
116
119
121
125
127
131
134
138
141
145
148
152
154
157
159
160
162
162
162
162
161
159
157
156
152
150
146
144
140
137
133
129
125
122
120
117
115
113
111
109
109
108
109
110
111
113
114
117
119
123
126
129
132
136
139
143
146
149
153
155
158
159
161
161
162
162
162
161
159
157
154
152
148
146
142
139
135
131
128
125
123
119
117
114
113
110
109
109
108
110
110
112
113
116
117
121
124
127
130
133
137
140
145
147
150
153
156
158
160
161
162
162
162
161
159
159
156
154
151
148
145
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
109
111
112
114
115
118
122
125
128
131
135
138
142
144
149
152
154
157
158
161
161
162
162
162
161
160
157
155
153
150
146
143
140
136
133
129
127
123
120
117
114
113
111
110
109
109
109
110
111
112
115
117
120
123
126
129
133
136
140
143
146
150
153
155
158
159
160
161
162
162
161
160
159
157
154
152
149
145
142
139
136
131
128
125
123
119
116
114
112
111
109
110
109
109
110
111
113
115
118
121
124
127
130
133
137
140
145
147
150
153
156
158
159
161
161
162
162
162
160
158
156
154
151
147
145
141
137
134
130
127
124
121
118
116
113
112
110
110
108
109
109
111
112
114
116
119
122
125
128
131
135
138
142
145
148
152
154
157
158
160
161
162
162
162
161
160
158
155
152
149
146
144
141
136
133
129
126
123
120
118
114
113
111
110
109
109
109
110
111
112
115
116
120
123
126
129
132
136
140
143
146
150
152
155
158
159
161
162
162
162
161
160
159
156
155
152
149
146
143
139
135
131
127
126
123
120
116
114
112
111
109
109
108
109
110
111
113
115
118
121
124
127
130
133
137
141
144
148
150
153
155
158
159
161
162
162
162
161
161
159
157
154
151
148
144
141
138
134
130
127
124
121
118
116
114
112
110
109
109
109
110
111
112
113
116
118
122
125
127
131
134
138
141
145
148
152
154
157
159
160
161
162
162
162
161
159
158
155
153
150
147
143
140
137
132
129
126
123
120
117
115
113
111
109
109
108
109
110
111
112
114
116
119
123
126
129
132
136
139
143
146
149
153
155
156
162
164
154
162
169
159
158
161
158
156
150
146
147
144
137
134
133
127
126
124
118
116
115
112
110
110
108
109
109
110
111
113
115
118
121
124
127
129
134
137
141
141
145
157
152
152
162
161
159
162
160
165
163
158
158
157
154
150
148
144
141
138
134
130
127
124
121
119
115
114
111
110
109
109
109
110
110
111
114
115
118
122
124
126
133
138
135
139
151
150
146
155
160
160
157
159
164
164
161
160
161
158
155
153
150
146
144
140
136
132
129
127
123
121
117
115
113
111
110
109
108
112
107
108
116
117
115
117
128
125
127
134
137
142
143
144
150
154
153
158
159
159
162
163
162
161
162
158
157
154
151
149
146
143
139
135
131
127
125
122
119
116
114
112
110
109
109
109
109
110
111
113
115
118
121
124
127
130
133
137
140
145
147
150
153
156
158
160
161
162
162
162
161
160
159
156
154
151
148
145
142
138
134
130
127
124
121
119
116
114
111
110
110
109
109
110
111
111
114
116
119
121
125
128
131
135
138
142
144
148
152
154
157
159
160
161
162
162
162
161
160
158
156
153
150
147
144
140
136
133
129
127
123
120
118
115
113
111
109
109
110
109
110
111
112
114
116
120
123
126
129
132
135
140
143
146
149
153
155
157
159
161
162
162
162
161
161
159
157
155
152
149
145
143
139
135
131
128
125
122
119
117
114
112
111
110
109
109
110
111
112
113
115
117
121
124
127
130
133
137
140
144
147
151
154
156
158
159
162
161
162
162
162
160
158
156
153
152
148
145
141
138
134
130
127
124
121
118
116
114
112
110
109
109
109
109
110
112
113
116
119
121
125
128
132
134
137
141
145
149
152
154
157
158
160
161
162
163
162
161
159
158
155
153
150
147
144
140
137
133
130
126
123
119
117
114
113
110
110
110
109
110
109
111
112
115
117
120
123
126
129
132
136
139
143
146
150
152
155
157
159
160
161
162
162
162
160
159
156
155
152
149
146
142
139
135
131
128
125
122
120
117
114
112
111
109
108
109
108
110
111
113
115
118
120
123
127
130
133
137
141
144
148
150
153
156
158
159
161
162
162
162
161
161
158
156
153
151
148
145
141
137
134
129
127
124
121
118
116
114
111
110
109
109
109
110
110
112
114
116
119
121
125
127
131
134
138
141
145
148
151
154
156
158
159
162
162
162
162
161
159
157
155
153
150
147
144
140
137
132
129
126
123
121
117
115
112
111
109
109
109
109
110
111
112
114
117
119
123
126
129
132
136
139
143
146
150
152
155
158
158
161
161
162
161
162
161
159
157
155
152
149
146
142
139
135
132
128
125
122
120
117
114
112
109
109
109
110
109
110
111
113
115
117
121
124
127
129
133
137
140
144
147
150
153
156
158
160
160
162
162
162
161
159
158
156
154
151
148
144
142
137
135
130
127
124
121
119
115
114
111
110
109
109
108
110
111
111
113
115
119
122
125
127
131
134
138
141
145
148
151
154
156
159
159
162
162
162
162
161
159
157
155
153
150
147
144
140
137
133
130
126
123
120
117
115
112
111
109
110
109
109
109
111
112
114
117
119
123
126
129
132
135
139
143
147
150
153
154
157
158
161
161
162
162
162
161
159
157
155
152
149
146
143
139
135
132
127
125
122
119
116
114
112
111
110
109
109
109
110
112
113
115
117
121
123
127
130
133
137
140
145
147
151
154
156
158
159
161
162
163
162
162
160
158
156
154
151
148
145
141
138
134
131
127
125
121
119
116
114
111
110
110
108
109
109
111
112
114
116
119
122
125
128
131
135
138
142
145
148
152
154
156
159
160
161
162
161
163
161
159
157
155
153
150
147
144
140
136
133
129
127
123
120
117
115
113
111
110
109
109
109
110
111
112
115
117
120
123
126
128
133
135
140
143
146
149
152
155
159
158
162
162
161
163
161
160
159
158
154
153
149
145
147
138
130
136
131
122
123
121
117
115
109
109
112
110
107
110
110
111
114
116
117
121
124
126
130
133
137
141
144
146
150
154
156
159
159
160
162
163
162
163
158
155
158
159
145
146
150
139
139
133
130
130
124
119
119
117
112
111
111
108
110
110
110
111
111
114
116
119
121
124
127
130
135
138
142
145
148
152
154
157
158
161
161
162
162
162
161
159
158
155
153
149
148
144
138
140
135
125
126
127
120
112
116
116
111
107
107
111
111
109
110
113
115
117
120
122
126
129
132
135
139
143
146
149
152
155
157
159
160
162
163
161
165
158
156
162
157
147
148
151
141
137
137
132
130
125
120
121
117
112
114
111
108
110
110
108
110
111
113
116
118
120
124
127
130
133
136
140
144
148
151
154
156
158
159
161
162
162
162
161
160
158
156
153
151
148
145
142
138
134
130
127
124
121
118
116
113
111
110
109
109
108
110
110
112
114
116
119
122
124
127
131
135
138
141
146
148
152
154
157
158
160
162
162
163
162
161
159
157
155
153
150
147
144
140
137
132
129
126
124
120
118
114
113
111
109
109
108
109
110
111
112
114
117
119
123
125
128
132
135
139
143
146
149
152
155
157
159
161
161
162
162
162
160
158
156
155
152
149
147
142
139
135
131
127
125
122
119
116
114
112
110
110
109
109
109
110
111
113
115
117
121
123
127
129
134
136
140
144
147
150
153
156
157
160
161
162
162
162
161
160
158
156
154
151
148
145
141
137
134
130
127
125
121
119
115
113
111
110
109
109
109
110
110
111
114
116
119
121
125
127
131
135
138
141
145
148
151
154
157
159
159
162
162
162
161
161
159
157
156
153
150
147
144
140
136
133
129
126
123
121
118
115
112
111
109
110
109
109
110
111
112
114
117
120
123
126
129
132
135
139
143
146
149
152
154
157
158
161
161
162
162
161
160
159
157
155
153
148
146
142
139
135
132
128
125
123
119
117
114
112
111
110
109
109
109
110
111
112
115
118
121
124
127
129
133
136
140
144
147
151
153
156
158
159
161
162
162
162
161
161
158
156
154
151
148
145
142
138
134
131
127
125
121
118
115
114
111
110
109
109
110
110
110
111
114
116
119
121
125
127
130
134
137
142
146
149
151
154
156
158
159
161
162
162
162
161
159
157
156
153
150
147
144
140
136
133
130
127
123
120
117
115
113
111
110
109
109
109
110
111
112
114
117
119
123
126
128
132
135
139
143
146
149
153
154
157
158
160
162
162
163
162
160
158
157
155
153
149
146
142
139
135
132
129
125
123
119
116
114
112
110
110
109
108
109
110
111
113
115
117
121
124
127
130
133
137
140
144
147
151
153
155
158
159
161
161
162
162
162
159
158
156
154
152
148
145
141
138
134
130
127
125
121
118
115
114
112
110
110
109
109
109
111
111
114
116
119
121
125
127
130
135
138
142
145
148
152
154
156
158
160
161
162
162
162
161
159
158
156
154
150
148
144
140
136
132
129
127
124
121
118
114
113
110
110
109
109
109
110
111
111
114
117
119
123
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
162
162
161
159
157
155
152
149
146
143
139
135
131
128
126
123
120
117
114
111
111
110
110
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
150
153
156
158
159
161
162
162
162
161
160
158
157
154
152
148
145
141
138
134
130
127
124
121
118
116
113
111
110
109
109
109
110
110
111
113
116
119
122
125
127
131
134
138
142
145
148
152
153
156
158
160
161
162
161
162
163
159
159
155
153
150
146
143
141
137
132
131
127
124
120
118
116
113
111
110
110
108
109
110
111
112
114
116
120
123
126
128
131
135
139
144
145
149
152
154
156
158
161
162
163
162
162
161
159
157
155
152
149
146
143
140
135
132
128
126
122
119
117
113
111
113
113
102
108
117
108
108
114
116
119
119
121
127
132
131
135
141
144
148
152
152
155
157
159
161
163
162
162
162
159
158
156
154
151
149
144
141
137
135
130
129
123
118
125
117
106
116
113
107
110
107
111
113
110
112
117
118
121
126
127
129
135
139
141
145
147
151
155
156
158
160
161
162
162
162
160
159
157
156
153
150
147
144
140
136
133
129
127
124
120
117
114
113
111
110
110
109
109
110
110
112
114
117
119
122
126
127
136
136
133
145
151
147
148
157
160
159
158
160
165
163
160
161
159
157
155
152
149
146
143
138
134
132
128
126
122
120
117
114
112
111
109
110
108
111
107
108
119
115
111
123
127
125
129
134
137
142
143
145
152
153
154
160
159
159
163
164
161
161
161
158
157
154
151
148
145
141
138
134
131
127
125
122
118
115
113
111
110
110
109
109
109
110
111
113
115
119
121
125
127
130
134
138
141
145
148
152
154
156
158
160
161
162
162
162
161
159
158
155
153
150
147
144
140
136
133
129
127
123
120
118
115
113
111
110
109
110
109
110
110
112
115
117
121
123
126
128
132
135
139
143
146
149
152
155
157
159
161
161
162
162
161
161
159
157
155
152
149
146
143
139
135
132
128
126
122
120
116
114
112
111
109
109
109
109
110
111
113
114
117
121
125
127
129
133
136
141
144
147
150
153
155
158
159
161
162
162
162
161
160
158
156
153
152
148
145
141
138
134
130
127
124
121
118
115
113
111
111
110
109
109
109
110
112
114
116
118
122
124
127
131
134
138
141
146
148
151
153
156
158
160
162
162
162
162
161
159
158
155
153
150
147
144
140
137
132
130
126
123
120
118
115
113
112
109
109
108
109
110
111
112
114
117
119
123
126
128
132
135
139
143
146
149
152
154
157
158
160
161
163
163
161
160
158
157
155
153
149
146
142
138
135
132
128
125
122
119
117
113
112
110
110
109
109
109
110
111
112
115
117
121
123
127
129
133
136
140
144
147
151
153
155
157
159
161
162
162
162
161
159
158
156
154
151
149
145
141
137
134
131
127
125
121
118
115
113
111
110
109
109
109
109
110
111
114
115
119
121
125
127
131
134
137
141
144
148
151
154
156
158
160
161
162
162
162
161
160
158
156
153
151
147
144
140
137
133
130
127
124
121
117
114
113
111
110
110
108
109
109
110
112
113
117
119
123
125
128
132
135
139
143
146
149
152
155
157
158
160
161
162
162
162
161
159
157
155
153
149
146
143
139
136
132
128
126
123
119
117
114
112
111
109
110
109
109
109
111
112
115
118
121
123
126
129
132
136
140
144
147
150
153
156
157
159
161
162
162
162
162
160
159
156
154
151
148
145
142
138
134
131
127
126
121
118
115
113
112
110
110
109
109
109
111
111
114
116
118
122
125
127
130
134
138
142
145
148
151
153
156
158
160
161
162
162
162
160
160
158
156
153
149
147
144
140
137
133
129
127
124
121
118
115
114
111
110
109
109
109
110
111
112
115
116
119
122
125
128
132
135
139
144
146
150
152
154
157
159
161
162
162
162
162
161
159
157
155
153
149
146
143
139
135
132
128
126
122
120
117
114
112
110
110
109
109
109
110
111
113
115
117
121
124
127
129
133
137
140
144
147
150
153
156
158
160
161
163
163
162
161
159
158
157
153
151
150
144
142
137
133
131
127
124
122
119
114
115
111
111
109
109
109
110
110
111
114
115
118
121
125
127
131
134
138
142
145
148
151
154
156
159
159
161
162
162
162
161
160
158
156
153
151
147
144
139
136
133
130
127
124
121
117
115
113
111
110
109
109
109
110
111
113
114
117
119
123
126
128
132
135
139
143
146
149
152
154
158
159
161
162
162
162
162
161
159
157
155
152
149
146
143
139
135
132
128
126
123
119
116
114
112
111
110
109
109
109
109
111
112
115
117
121
123
125
131
137
131
138
152
145
148
154
157
159
158
158
162
165
160
161
162
158
157
155
150
147
145
141
137
134
131
127
125
121
118
116
114
112
110
110
109
110
109
110
113
111
112
125
124
117
130
133
132
138
140
146
151
149
153
158
158
160
162
162
160
163
162
159
157
155
154
151
147
144
141
137
133
130
127
124
120
118
115
113
111
110
109
109
109
109
110
112
114
117
120
123
125
127
132
135
140
143
146
148
152
154
157
159
161
162
162
162
161
160
159
157
156
152
148
147
141
143
137
126
131
129
121
116
119
117
111
108
109
112
110
108
109
112
113
115
117
120
123
126
130
132
136
140
144
147
150
153
155
157
160
161
163
162
163
158
156
164
158
147
153
152
143
140
139
135
133
127
123
123
118
114
115
111
109
110
110
108
108
110
112
113
116
118
122
124
127
130
134
137
141
145
148
151
153
157
158
160
162
162
162
161
160
159
158
157
154
150
148
144
140
137
133
130
127
124
121
118
114
113
111
110
109
109
109
110
111
112
115
116
119
122
126
129
133
135
138
143
145
150
152
155
157
159
161
161
162
162
162
160
159
157
155
153
149
146
142
139
136
133
129
126
123
119
116
114
112
111
110
109
110
108
109
110
113
115
118
120
123
127
129
133
136
140
144
147
150
153
156
158
160
161
162
162
163
161
161
158
157
154
151
149
145
142
137
134
130
128
125
121
118
115
113
112
111
109
110
109
109
110
111
114
116
119
121
125
127
130
134
138
142
145
149
152
154
156
158
160
161
162
162
162
161
160
158
156
153
151
147
144
140
137
133
130
127
123
121
117
115
113
111
110
110
109
108
110
110
113
115
117
119
123
125
128
131
135
139
143
146
149
152
154
157
159
161
161
162
162
162
161
159
157
155
152
149
146
143
140
135
132
128
126
122
120
117
114
113
111
110
109
108
109
110
111
113
115
117
121
123
126
129
133
137
140
144
146
151
153
156
157
159
161
162
162
161
161
160
158
156
154
152
148
145
141
138
134
131
127
125
121
119
116
114
112
110
110
109
109
109
110
111
114
116
118
121
125
127
131
134
137
142
145
149
150
153
156
158
161
161
162
162
162
160
159
157
156
153
150
147
144
141
137
133
130
127
124
120
117
115
113
111
110
109
109
109
110
111
112
114
117
119
122
126
128
132
135
139
143
146
149
152
155
157
159
161
162
162
162
161
161
159
158
155
152
150
146
143
138
135
132
128
126
123
119
117
114
112
111
110
110
109
109
110
111
113
115
118
120
124
126
130
133
137
140
144
146
150
153
155
158
159
161
162
162
162
161
160
158
157
154
152
148
144
141
138
135
131
127
125
121
118
116
113
112
110
110
109
109
109
110
111
114
116
118
122
124
127
130
134
137
141
145
148
151
154
157
158
160
161
162
162
162
161
160
158
156
154
150
147
144
141
136
133
130
127
124
120
117
114
114
112
111
110
109
109
109
111
112
114
116
119
122
125
128
132
135
139
143
145
149
152
154
157
159
161
161
162
162
162
161
160
157
155
152
150
146
143
139
135
132
128
126
123
119
117
114
112
111
110
109
109
110
109
111
113
115
118
120
123
127
128
132
137
141
144
146
149
153
155
157
160
161
162
162
162
161
159
159
157
155
151
148
144
142
138
135
131
127
125
121
119
115
114
111
111
110
109
109
109
110
111
114
116
119
121
124
127
130
134
138
141
144
148
151
154
156
158
159
161
162
162
161
161
160
158
156
153
150
147
144
140
137
133
130
127
124
121
118
115
113
111
110
109
109
109
109
111
112
114
116
119
123
125
129
131
135
139
143
146
148
152
154
157
159
161
162
162
162
161
160
159
157
155
153
149
147
143
139
135
132
128
126
122
119
117
114
113
111
110
109
109
109
110
111
113
115
118
120
123
127
129
133
136
140
144
146
150
153
156
157
159
162
167
157
157
168
160
155
157
156
152
148
142
142
141
134
130
128
125
121
120
115
113
112
111
109
109
109
109
111
111
113
116
119
121
125
127
130
135
137
141
147
147
146
159
161
150
161
166
160
163
160
161
164
157
156
154
151
146
144
141
135
134
132
127
123
120
117
115
113
111
111
110
109
108
110
110
112
114
117
119
123
126
128
132
135
139
142
146
149
152
155
157
158
161
162
163
162
162
161
159
157
155
152
150
146
143
139
136
132
129
126
123
119
117
115
112
111
110
109
109
109
110
111
113
115
117
120
123
126
129
137
135
135
148
150
146
151
158
160
157
158
162
165
162
159
161
159
157
154
152
147
145
142
139
134
131
127
124
121
118
116
113
111
111
110
109
110
108
107
111
120
114
112
126
125
125
130
135
140
142
143
147
153
152
156
160
159
161
163
163
161
161
160
158
156
153
150
148
144
140
137
133
130
127
124
120
118
114
113
111
110
109
108
109
110
111
112
115
117
120
122
124
128
132
136
139
143
145
149
151
154
157
159
161
162
162
161
162
160
159
157
155
153
149
146
142
139
135
132
128
126
123
120
117
114
113
111
110
109
109
109
110
111
113
115
117
121
123
127
129
133
136
141
144
147
150
152
156
157
160
161
162
162
162
161
160
159
157
154
152
148
144
142
138
134
131
128
125
122
119
116
114
111
110
109
109
109
110
110
111
114
116
119
121
125
127
130
134
138
141
145
148
151
154
156
158
160
162
162
161
162
161
160
158
156
153
151
146
144
140
137
133
130
127
124
121
117
115
113
112
109
109
109
110
110
110
112
114
117
120
122
125
128
132
135
139
143
146
148
152
154
157
158
161
161
162
162
162
161
159
158
155
153
149
146
143
139
136
133
129
126
123
118
117
114
113
111
109
109
109
109
110
111
113
115
118
120
123
127
129
133
136
140
144
147
150
152
156
157
159
161
162
162
162
162
160
159
156
154
152
149
145
142
138
135
132
128
125
121
118
116
114
112
110
109
109
109
109
110
111
114
115
119
121
125
127
130
134
138
141
145
148
151
154
156
159
160
161
162
162
163
161
160
158
156
154
151
147
144
141
137
133
130
127
123
121
118
115
113
111
111
109
109
108
110
111
113
114
117
119
122
125
127
132
134
139
142
146
148
152
155
157
159
161
162
162
162
162
161
159
157
155
152
150
146
143
139
136
132
128
126
123
120
117
114
112
111
109
109
109
109
110
111
113
115
118
119
123
126
130
133
137
140
144
147
150
153
155
158
159
161
161
162
162
161
160
158
157
154
152
148
145
141
138
134
131
127
125
122
119
116
114
112
110
110
109
109
109
110
111
113
116
118
121
124
127
130
134
138
141
145
147
151
153
157
158
160
161
162
162
162
161
159
158
156
154
150
147
144
141
137
133
131
127
124
120
118
115
113
111
110
109
109
109
109
111
112
114
116
120
122
125
128
131
135
137
143
146
148
152
154
156
160
160
162
162
161
161
162
160
158
155
152
150
146
142
140
136
132
128
126
123
120
117
114
113
111
110
109
109
109
111
111
113
114
117
120
123
127
129
133
136
140
143
147
150
153
156
157
159
161
162
162
162
161
160
159
157
155
151
148
144
142
138
135
131
128
125
121
119
116
114
111
111
109
109
109
109
110
111
114
116
119
121
125
127
130
134
137
141
145
148
151
154
156
158
159
161
162
162
162
161
160
158
156
153
151
147
144
140
137
134
131
127
123
120
118
116
114
112
110
109
109
109
110
111
112
114
117
119
123
125
128
131
135
139
143
145
149
152
154
157
158
160
161
162
162
162
161
159
158
155
153
149
146
143
139
136
132
129
126
123
120
117
114
113
112
110
109
108
109
110
111
113
115
117
120
123
126
129
133
137
140
143
146
150
153
155
158
159
161
162
162
162
162
160
159
157
154
152
147
144
145
141
127
132
134
121
119
121
118
115
110
107
111
111
107
109
111
111
114
117
117
120
125
127
130
134
137
141
145
146
151
153
156
158
161
161
161
162
162
161
161
155
153
162
150
141
149
141
135
133
128
129
126
118
118
116
112
111
111
109
107
110
111
110
112
114
117
120
122
125
128
132
135
139
143
144
148
152
155
157
158
160
161
162
162
162
160
159
157
155
152
149
146
143
140
136
132
128
126
123
119
117
114
112
111
110
109
109
109
110
111
113
115
117
120
123
127
129
133
136
140
143
147
150
153
155
158
160
161
161
161
162
161
161
159
157
155
151
148
145
139
142
137
126
127
129
122
114
117
117
111
107
108
112
110
108
109
112
114
115
119
121
124
127
131
133
137
140
144
147
150
154
156
158
159
162
162
161
163
159
155
163
159
146
150
152
143
140
138
134
132
127
121
122
117
114
115
111
108
109
111
108
109
110
113
115
116
119
122
125
128
131
135
138
143
146
148
152
154
157
158
160
161
162
162
162
161
159
157
155
153
149
147
143
140
136
132
128
125
123
120
117
114
112
111
109
109
108
109
110
111
113
115
117
120
123
127
129
133
136
140
144
146
150
153
156
157
159
161
162
162
162
162
160
159
157
155
152
149
145
142
138
134
131
127
125
121
119
116
114
112
110
109
108
109
109
111
111
113
116
118
120
124
127
130
134
137
141
144
148
150
154
156
158
160
161
162
162
162
161
160
158
156
153
151
148
144
141
136
134
130
127
124
121
118
115
113
111
110
109
109
109
110
111
112
114
116
118
122
125
128
132
135
139
142
145
148
152
154
157
159
160
161
161
162
162
161
159
158
155
152
150
146
143
139
136
132
129
126
123
120
117
115
112
111
109
109
109
109
110
111
113
115
118
120
124
126
130
133
137
140
143
146
150
153
155
158
159
161
161
162
161
162
160
158
157
155
152
148
145
142
139
135
131
128
125
122
118
116
113
113
110
110
109
109
109
110
112
113
116
118
122
124
127
130
134
137
141
145
148
151
153
157
159
160
161
161
162
163
161
161
158
155
154
150
148
144
141
137
134
130
127
124
120
118
115
114
111
110
109
109
109
110
111
111
114
116
119
121
126
128
132
135
138
142
145
149
152
154
156
158
161
162
162
162
162
161
160
158
155
152
150
146
144
140
136
132
128
126
122
120
117
114
113
110
110
110
109
109
109
111
113
115
117
120
123
127
129
133
136
140
144
147
150
153
156
157
160
160
162
162
162
161
161
158
157
154
152
149
145
143
139
135
131
127
125
122
119
116
114
112
111
109
109
108
109
110
111
113
115
118
121
124
127
131
134
137
141
144
148
151
154
156
158
159
162
162
163
161
161
159
159
156
154
151
147
145
140
137
134
130
126
124
121
118
115
114
112
109
108
109
110
109
111
112
114
116
118
122
125
128
131
135
139
142
146
149
152
154
157
158
161
162
162
162
161
161
159
158
155
153
149
147
143
139
136
132
129
126
123
120
117
114
113
111
110
109
109
109
109
112
113
115
116
120
123
127
130
133
136
139
143
146
150
152
155
158
159
161
161
162
162
162
160
159
157
154
151
148
145
142
138
134
131
127
126
122
119
116
114
112
111
110
109
109
108
110
111
113
116
118
121
124
127
130
135
137
141
144
148
151
154
156
158
160
161
161
161
162
161
160
158
156
153
151
147
144
141
137
134
130
127
124
121
117
115
113
111
110
109
109
109
110
111
113
114
117
119
122
125
127
131
134
138
142
146
148
152
155
157
159
160
161
161
162
162
161
159
158
155
152
149
146
143
140
136
132
129
126
123
120
117
114
113
111
110
110
109
109
110
111
112
115
117
120
123
126
129
132
136
140
143
147
150
153
155
158
159
161
161
162
162
162
161
159
156
154
151
148
146
142
139
135
131
127
125
122
119
117
113
111
111
114
103
106
116
109
108
114
117
119
120
121
127
133
133
136
142
144
148
152
153
155
158
160
161
162
162
162
161
160
158
156
154
150
148
144
141
138
134
130
127
122
117
125
117
105
115
113
107
109
107
111
114
110
113
117
118
121
126
128
129
136
140
142
145
149
152
155
157
158
161
162
162
162
162
161
159
157
156
152
150
147
144
140
136
133
129
126
123
120
117
115
113
111
109
108
109
109
110
111
113
115
117
120
123
126
129
133
136
140
143
147
150
153
155
158
159
161
162
162
162
161
160
158
157
155
152
148
145
142
139
135
131
128
125
122
119
116
114
112
111
109
109
109
110
110
112
113
115
118
120
124
127
128
137
140
135
145
152
150
150
158
162
158
157
160
165
163
160
159
159
157
154
151
146
144
140
137
133
130
127
124
121
118
115
113
112
110
110
109
109
111
108
108
121
117
112
124
128
127
131
136
140
143
144
147
154
154
156
160
159
159
163
164
161
160
159
158
155
152
149
147
143
140
136
132
129
126
123
120
117
114
113
111
110
109
109
109
110
111
112
115
117
120
123
127
129
133
135
139
144
146
150
153
156
158
159
160
161
162
162
162
160
158
156
155
152
148
145
142
138
135
131
128
125
121
120
116
114
112
111
110
109
109
109
110
111
114
115
118
121
124
127
130
134
137
141
144
148
151
154
156
158
160
161
162
162
162
161
161
158
156
153
151
148
144
141
137
134
130
127
124
121
118
116
113
111
110
109
109
109
110
111
113
114
117
119
122
125
127
131
135
139
142
145
148
152
154
157
159
161
162
162
162
162
161
159
158
155
153
149
147
143
140
137
132
129
126
123
121
118
114
113
111
110
109
108
109
110
111
112
115
117
120
123
126
129
133
136
140
143
146
150
152
155
158
159
161
161
162
161
162
160
159
157
155
152
148
146
142
139
135
131
127
125
122
119
116
114
112
110
110
109
110
109
110
111
113
115
118
121
124
127
130
134
137
140
144
147
150
154
157
158
161
161
162
162
162
161
160
158
156
154
150
147
144
141
137
134
130
127
124
121
118
115
114
111
110
109
109
109
110
111
112
114
115
119
122
126
127
131
135
138
142
145
148
152
154
157
158
160
161
162
162
162
161
159
157
155
153
149
146
142
140
135
132
128
126
123
120
117
114
112
111
110
109
109
108
110
111
113
115
117
120
123
127
129
133
135
139
143
147
150
153
156
158
159
160
162
162
162
162
161
158
157
154
152
149
145
142
138
135
131
127
124
122
120
115
115
111
110
110
108
109
110
109
111
114
116
118
120
125
127
130
133
138
141
144
147
151
154
156
158
159
161
161
163
162
161
159
158
156
153
150
147
144
141
138
133
131
127
124
121
118
115
113
111
110
109
108
110
109
110
111
114
117
119
122
125
127
131
135
138
142
145
149
152
154
156
158
161
161
162
162
162
161
160
157
154
153
150
147
143
139
136
133
129
126
123
120
118
114
113
111
109
109
109
109
110
111
112
115
117
120
123
126
129
133
135
140
143
146
149
153
155
157
159
161
162
162
162
161
160
159
157
155
152
148
146
143
139
134
130
127
126
122
119
116
114
111
110
109
109
109
110
110
111
113
115
118
121
124
127
130
134
138
141
144
147
151
154
156
158
159
162
162
162
162
161
160
158
156
153
151
147
145
141
137
134
130
127
124
121
118
116
113
111
109
109
109
110
110
110
112
114
116
119
122
125
128
131
135
138
142
145
148
152
154
157
158
160
161
162
162
162
160
159
157
155
153
149
147
143
140
136
132
129
126
124
120
117
114
113
111
109
109
108
109
110
111
112
114
117
120
123
126
129
132
136
139
144
146
150
152
156
157
159
161
161
162
162
162
160
159
157
154
152
149
146
142
139
135
131
127
125
122
119
116
114
112
111
110
109
109
109
111
111
113
116
118
121
123
127
135
131
131
147
146
144
150
155
157
158
157
160
165
162
160
162
160
158
157
154
150
148
145
141
137
134
129
127
124
121
119
116
113
111
111
109
110
109
110
112
111
109
122
124
113
126
132
129
135
137
143
149
148
150
156
156
157
160
162
161
162
164
161
158
157
156
153
150
146
144
140
136
132
129
126
123
121
117
114
112
111
110
109
109
109
110
110
113
115
117
120
123
126
129
133
136
140
143
146
149
153
155
157
159
161
162
162
162
162
161
158
156
154
152
149
146
142
139
135
131
128
125
122
120
117
114
112
111
109
110
109
109
110
112
113
115
118
121
123
127
130
133
137
140
145
147
151
154
156
158
159
161
162
163
162
161
160
158
156
153
151
147
145
142
134
137
132
122
125
126
118
111
114
115
110
106
107
111
111
109
111
115
116
119
122
125
127
131
135
138
142
145
148
152
155
157
159
160
161
162
163
161
163
157
153
162
155
142
149
148
137
135
133
131
127
121
118
120
114
111
112
109
108
109
111
109
111
113
115
118
119
123
126
129
132
136
139
143
146
150
152
155
158
159
161
161
162
162
162
160
159
157
154
152
148
146
142
139
135
132
127
125
122
119
116
114
112
110
110
109
110
109
111
111
113
115
118
121
124
127
130
133
136
141
144
148
151
153
156
158
160
161
162
162
163
161
160
158
156
154
150
148
144
141
137
134
130
127
124
121
119
115
114
111
110
109
109
108
109
110
112
114
116
119
122
126
128
131
134
138
142
145
149
152
155
157
159
160
161
162
162
162
161
159
157
155
152
150
147
144
140
136
133
129
126
123
120
117
115
112
111
110
109
109
109
110
111
113
114
117
119
123
126
129
132
136
139
143
147
150
153
155
157
158
161
162
163
162
161
161
158
157
154
152
149
146
142
139
135
131
128
125
122
119
117
114
112
110
109
109
109
109
110
112
113
116
118
121
124
127
130
133
137
140
144
147
151
154
156
158
159
161
161
163
162
162
159
157
155
154
151
148
144
141
137
134
130
127
124
121
119
116
113
111
110
110
109
109
109
111
112
114
116
118
122
125
128
131
135
138
142
145
149
152
154
157
158
161
161
162
162
162
161
159
158
155
153
149
147
144
140
136
132
129
126
124
120
117
114
113
111
110
109
109
109
110
110
112
116
116
121
123
126
129
132
135
140
143
145
150
152
156
157
159
161
162
162
161
162
160
159
157
155
152
149
145
143
138
135
131
127
125
122
120
116
113
111
110
110
109
109
109
110
111
113
115
118
121
124
127
130
133
137
141
144
147
150
154
156
158
159
161
161
162
162
161
160
158
156
153
151
147
145
141
137
134
130
127
124
121
118
115
113
111
110
109
109
110
110
110
111
113
117
119
122
125
127
131
134
138
141
145
148
152
154
157
158
160
161
162
163
162
161
159
158
155
153
149
146
143
139
136
132
129
126
123
120
117
115
113
111
110
109
108
109
110
111
112
114
117
120
124
127
129
132
135
139
144
147
150
152
155
157
158
161
161
162
162
161
161
158
157
154
152
148
146
142
138
135
131
127
125
122
119
116
114
112
110
110
109
109
109
110
111
113
116
118
121
124
127
129
133
137
141
144
147
151
153
156
157
159
161
162
162
162
161
159
158
156
154
150
148
145
141
137
133
130
127
125
121
118
115
113
111
111
109
109
108
109
111
112
114
116
119
122
125
127
131
134
138
142
146
148
152
154
156
159
160
161
162
162
162
160
159
158
156
153
149
146
144
139
136
132
129
126
124
121
117
115
112
111
110
109
109
109
110
111
113
114
117
120
123
126
129
132
136
140
143
146
149
153
155
158
159
161
161
162
162
161
160
159
157
154
152
149
146
142
138
134
131
128
126
122
119
116
114
112
110
110
109
109
110
110
111
113
115
117
121
124
127
130
133
137
140
144
147
151
152
156
157
158
166
163
155
164
167
156
157
158
155
152
145
143
144
139
132
130
128
124
122
119
114
113
112
110
110
109
109
109
111
111
113
116
119
122
125
127
131
135
138
143
144
144
156
161
150
158
165
159
163
160
162
165
159
155
156
153
149
147
144
138
136
135
129
126
123
120
118
115
112
111
110
109
109
109
110
110
112
115
117
120
123
126
128
132
135
139
143
146
149
153
155
157
159
161
162
162
162
161
161
159
157
155
152
149
146
143
139
135
132
128
126
122
120
116
114
112
111
109
109
109
109
110
111
113
115
117
121
125
127
129
133
137
141
145
148
150
153
156
158
159
161
162
162
162
161
160
158
156
154
151
148
145
141
137
134
130
127
124
121
118
116
113
111
110
110
109
109
110
110
112
114
116
119
122
124
127
132
132
143
143
140
150
156
153
152
160
164
162
159
161
164
163
157
157
156
153
150
147
143
139
136
132
129
126
124
120
117
115
113
112
109
109
108
110
110
112
110
112
124
120
116
128
132
129
135
140
144
148
148
151
157
156
158
162
161
162
163
163
158
158
157
155
153
148
145
142
139
134
131
128
125
122
119
117
113
112
110
110
109
109
109
110
111
113
115
118
120
124
127
130
134
137
141
144
147
150
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
136
134
131
127
125
121
118
115
114
111
111
109
109
109
109
110
111
113
116
119
121
126
127
131
135
138
141
145
148
151
155
156
159
160
162
162
162
162
161
160
158
156
153
151
147
144
140
136
133
129
127
124
120
117
114
112
111
110
109
109
109
110
110
112
114
117
119
123
126
129
133
135
139
143
147
149
153
155
157
159
161
162
162
162
162
161
158
157
155
152
149
146
142
139
135
131
128
125
122
119
117
114
112
110
110
111
110
109
109
111
113
116
118
120
124
127
130
133
137
140
144
147
151
153
156
158
159
161
161
162
161
161
160
158
156
154
151
148
145
141
138
134
131
127
124
121
118
116
113
112
110
110
108
109
109
111
112
114
116
119
123
125
127
130
135
138
142
146
147
153
155
156
158
160
161
163
161
163
161
159
158
156
154
149
147
144
141
136
132
129
127
123
119
118
115
113
111
110
109
109
109
110
111
112
115
117
120
123
126
128
133
135
139
144
147
150
152
155
157
159
161
162
162
162
162
160
158
157
155
152
149
145
142
139
135
131
128
126
122
120
117
114
112
110
109
109
109
109
111
111
113
115
118
121
124
127
130
133
137
141
144
147
150
153
156
158
159
161
162
163
161
161
159
158
157
154
151
148
144
141
137
134
130
127
124
121
118
115
113
111
110
109
109
109
110
110
112
113
116
119
122
125
127
131
134
138
141
146
148
152
154
157
159
160
162
162
162
162
161
159
158
155
153
151
147
143
139
136
133
129
126
124
120
117
115
112
111
109
110
109
109
109
111
112
114
117
120
123
126
129
132
136
139
143
146
150
152
155
157
159
161
161
162
162
162
161
159
157
155
152
149
146
142
139
135
132
128
126
122
119
116
113
113
111
110
109
109
109
110
111
113
115
118
121
123
127
130
133
137
141
144
147
150
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
125
121
118
115
114
111
111
110
110
109
109
110
112
115
116
119
122
125
127
130
134
138
142
145
149
151
154
156
158
160
162
162
162
163
161
160
158
155
153
150
146
144
140
137
133
129
127
124
121
117
115
113
111
110
109
109
109
110
111
112
114
117
120
123
126
128
132
136
140
143
147
149
153
154
157
159
161
162
162
163
162
161
158
157
155
152
149
146
142
139
135
131
128
125
123
119
117
114
112
111
110
109
109
109
110
111
113
115
118
121
124
127
130
133
137
141
145
147
150
153
155
158
160
161
167
161
154
166
163
154
156
157
152
148
142
139
141
135
129
127
125
121
120
116
112
111
111
109
109
109
109
111
112
114
116
119
122
125
128
131
135
138
143
146
145
147
162
160
150
163
164
161
163
159
162
163
156
155
155
149
147
144
140
134
134
131
126
123
120
118
115
112
111
111
110
109
109
110
111
112
114
117
120
123
126
129
132
135
140
144
146
149
152
155
157
159
161
162
162
162
161
161
159
157
155
153
149
145
142
139
136
132
128
126
123
119
116
114
112
111
109
109
109
109
110
111
113
115
118
120
125
127
130
134
137
141
144
147
150
153
156
158
159
161
162
162
162
162
160
158
157
154
152
148
145
141
137
134
130
128
125
121
118
116
113
112
110
109
109
109
110
110
112
113
116
119
122
124
127
131
134
138
142
146
148
152
154
157
158
160
162
162
162
162
161
159
158
156
154
150
147
143
140
137
130
133
127
118
120
122
114
109
113
112
110
105
108
111
112
111
115
118
120
122
126
128
131
136
139
143
146
150
152
154
157
159
161
162
162
162
163
160
161
154
151
159
150
139
145
144
133
131
129
127
124
118
115
116
111
109
111
109
107
110
112
111
112
116
119
122
124
126
129
134
137
140
144
147
151
153
155
157
160
161
162
162
162
161
159
158
156
154
151
148
144
142
138
134
130
127
124
121
119
115
114
111
110
109
109
109
109
111
112
114
116
119
122
125
127
131
135
138
142
145
148
151
153
156
159
161
162
162
162
162
161
159
157
156
153
150
147
144
140
137
133
130
127
123
120
117
115
112
111
110
109
109
108
110
110
112
115
117
120
123
125
129
133
135
139
143
146
149
153
155
157
159
161
162
162
162
161
160
159
158
155
152
149
146
142
139
135
132
128
126
123
119
116
114
112
111
110
109
109
109
110
111
113
115
118
120
124
127
130
133
137
140
144
147
151
153
156
158
159
161
162
163
162
161
160
158
156
155
153
147
145
141
137
135
130
127
124
121
117
116
114
112
110
110
109
109
108
110
112
113
116
119
122
124
127
131
135
138
141
145
148
151
154
157
158
160
161
162
162
162
161
159
158
155
153
150
147
144
140
137
133
130
127
124
120
117
114
114
111
109
110
109
110
109
110
111
115
117
120
122
125
129
132
136
139
144
146
150
152
155
157
159
161
161
162
162
162
160
159
157
155
153
149
146
142
139
135
133
128
125
122
120
117
114
113
111
110
109
109
108
110
111
114
116
118
121
124
127
129
133
137
140
144
147
150
153
156
158
160
161
162
162
162
161
160
158
156
154
151
148
144
141
137
134
130
127
125
121
119
115
114
111
110
109
109
109
110
111
111
114
117
120
122
125
127
131
135
138
142
145
148
151
154
156
159
160
162
162
162
162
161
160
157
156
153
150
147
144
140
137
133
129
127
123
120
117
115
113
111
110
109
109
109
110
111
112
114
117
119
123
126
128
132
136
140
143
146
149
152
155
158
159
161
162
162
162
161
160
158
157
155
152
149
146
142
139
135
132
129
126
123
120
117
114
113
111
110
109
109
109
110
111
113
115
118
121
124
127
130
133
137
140
144
147
150
153
156
158
160
162
162
162
161
161
160
159
157
154
151
148
145
141
138
134
131
127
125
121
118
116
113
112
110
110
109
110
109
110
111
114
116
118
122
124
127
130
134
138
141
146
148
152
154
156
159
161
161
162
162
162
161
159
158
156
154
150
147
143
140
137
133
130
126
124
120
118
114
113
111
111
109
109
109
109
111
112
115
117
120
123
126
129
132
135
139
143
146
150
152
155
157
159
161
161
162
162
162
160
159
156
155
152
149
146
142
139
135
133
128
126
122
119
116
114
113
110
110
109
109
109
110
111
113
115
118
120
123
127
129
133
137
141
144
147
150
153
156
158
159
161
162
162
161
161
161
163
152
150
158
149
141
141
140
135
130
125
125
125
118
115
115
111
111
111
108
107
110
111
112
114
116
118
122
124
127
131
134
138
141
145
147
151
155
157
159
156
161
170
159
156
166
160
156
156
151
153
149
142
140
138
132
129
127
123
119
119
116
112
111
109
110
109
108
110
111
112
114
118
120
122
125
129
133
136
139
143
146
149
152
154
157
158
161
161
162
162
161
161
159
157
155
152
149
146
143
139
135
132
128
125
123
119
117
114
112
111
110
110
109
110
110
111
113
116
118
121
123
127
130
133
137
141
144
146
150
152
157
158
160
161
161
162
162
161
160
159
156
155
151
148
145
141
138
134
132
127
124
120
118
115
114
111
110
109
109
109
109
110
111
114
116
119
122
125
127
131
135
138
142
145
149
152
154
156
158
161
161
162
161
161
161
160
158
156
153
150
147
144
140
136
134
129
127
123
120
117
114
113
111
110
109
109
109
110
110
112
114
117
120
122
126
128
133
134
138
143
150
147
148
159
161
155
159
165
163
160
158
162
161
157
153
153
150
145
143
139
135
131
128
126
122
119
117
114
112
111
109
109
108
109
110
111
115
114
113
124
128
120
128
139
136
138
145
148
153
153
153
159
159
160
163
163
160
161
162
158
156
154
152
149
145
141
138
135
131
127
124
121
118
116
114
112
110
110
108
109
109
110
112
113
116
118
122
125
127
131
135
138
142
146
148
152
154
157
158
160
161
162
163
162
161
159
158
156
154
150
148
144
140
137
133
129
127
124
120
118
115
113
112
110
109
108
109
109
111
113
115
117
119
122
125
128
132
136
139
143
146
149
152
155
157
159
161
161
162
162
162
160
159
157
155
152
149
146
142
139
135
133
128
126
122
119
118
115
112
111
110
108
110
108
110
111
113
115
118
120
123
126
130
134
137
140
144
147
150
153
156
158
160
161
162
162
162
161
160
159
156
155
152
148
145
141
137
134
130
127
125
122
119
115
114
111
110
109
109
109
110
110
112
114
116
119
122
125
127
131
134
138
142
145
148
151
154
157
159
160
161
162
162
162
160
159
157
156
153
150
147
144
140
137
133
130
127
124
121
118
115
113
111
110
109
109
109
110
111
113
114
117
120
123
126
129
132
135
139
143
146
149
153
155
157
159
161
162
162
162
162
161
159
157
155
152
149
145
143
139
136
132
128
125
123
119
117
114
112
111
109
109
108
109
110
111
112
115
118
120
124
127
130
133
137
141
144
147
150
153
156
158
159
161
162
162
161
162
160
158
157
154
151
147
145
142
138
134
131
127
125
121
118
115
114
112
110
109
108
109
109
110
112
113
116
119
122
125
127
131
134
138
141
145
148
151
153
157
159
160
161
162
162
162
161
160
158
156
154
150
147
144
140
136
133
130
127
123
119
118
115
113
111
110
109
108
108
109
111
112
115
116
119
123
126
129
132
135
139
143
146
149
152
155
157
159
160
161
162
162
162
160
159
157
155
152
149
146
143
139
135
132
127
126
122
120
116
115
113
111
110
108
109
109
110
111
113
115
117
120
123
126
129
133
136
140
144
147
150
153
156
158
159
161
162
162
162
161
159
158
156
154
151
148
145
142
138
135
131
128
124
121
118
116
113
111
110
109
109
108
109
110
112
114
116
118
121
124
127
131
134
138
141
145
148
151
154
156
159
159
162
162
162
162
161
160
158
156
153
150
147
144
139
137
133
130
127
123
121
118
115
112
111
109
109
109
109
109
110
112
114
117
119
123
125
128
132
136
140
143
145
149
153
155
158
158
160
161
162
162
161
160
158
157
155
152
149
146
142
139
136
132
129
126
123
119
117
114
112
111
110
109
109
109
110
111
113
115
117
120
123
127
130
133
136
140
144
147
150
153
156
158
160
161
162
161
162
162
160
158
156
154
150
153
144
134
143
138
127
126
126
122
119
113
112
115
110
108
109
109
109
111
111
112
115
119
121
125
127
130
134
138
141
145
149
151
154
157
158
160
162
163
163
159
157
168
159
148
157
152
145
144
139
139
136
127
126
124
120
117
117
113
109
111
110
108
108
109
111
113
114
116
120
122
126
128
132
135
139
143
146
149
152
155
157
159
161
